| f | module Cisco-IOS-XR-um-router-bgp-cfg { | f | module Cisco-IOS-XR-um-router-bgp-cfg { |
| namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-um-router-bgp-cfg"; | | namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-um-router-bgp-cfg"; |
| prefix um-router-bgp-cfg; | | prefix um-router-bgp-cfg; |
| | | |
| import Cisco-IOS-XR-types { | | import Cisco-IOS-XR-types { |
| prefix xr; | | prefix xr; |
| } | | } |
| import ietf-inet-types { | | import ietf-inet-types { |
| prefix inet; | | prefix inet; |
| } | | } |
| import Cisco-IOS-XR-um-snmp-server-cfg { | | import Cisco-IOS-XR-um-snmp-server-cfg { |
| prefix a1; | | prefix a1; |
| } | | } |
| import Cisco-IOS-XR-um-vrf-cfg { | | import Cisco-IOS-XR-um-vrf-cfg { |
| prefix a2; | | prefix a2; |
| n | } | n | |
| import cisco-semver { | | |
| prefix semver; | | |
| } | | } |
| | | |
| organization | | organization |
| "Cisco Systems, Inc."; | | "Cisco Systems, Inc."; |
| contact | | contact |
| "Cisco Systems, Inc. | | "Cisco Systems, Inc. |
| Customer Service | | Customer Service |
| | | |
| Postal: 170 West Tasman Drive | | Postal: 170 West Tasman Drive |
| San Jose, CA 95134 | | San Jose, CA 95134 |
| | | |
| Tel: +1 800 553-NETS | | Tel: +1 800 553-NETS |
| | | |
| E-mail: cs-yang@cisco.com"; | | E-mail: cs-yang@cisco.com"; |
| description | | description |
| "This module contains a collection of YANG definitions | | "This module contains a collection of YANG definitions |
| for Cisco IOS-XR router-bgp package configuration. | | for Cisco IOS-XR router-bgp package configuration. |
| | | |
| This YANG module augments the | | This YANG module augments the |
| modules with configuration data. | | modules with configuration data. |
| | | |
| Copyright (c) 2019-2024 by Cisco Systems, Inc. | | Copyright (c) 2019-2024 by Cisco Systems, Inc. |
| All rights reserved."; | | All rights reserved."; |
| | | |
| revision 2024-03-10 { | | revision 2024-03-10 { |
| description | | description |
| "Changed prefix-download-delay leaf to prefix-ecmp-delay | | "Changed prefix-download-delay leaf to prefix-ecmp-delay |
| n | Changed oor-delay leaf to oor-threshold | n | Changed oor-delay leaf to oor-threshold"; |
| 2024-02-21 | | } |
| | | revision 2024-02-21 { |
| | | description |
| Update help section of description for neighbor | | "Update help section of description for neighbor"; |
| 2024-02-10 | | } |
| | | revision 2024-02-10 { |
| | | description |
| Added tcp ip-only-preferred | | "Added tcp ip-only-preferred"; |
| 2024-01-31 | | } |
| | | revision 2024-01-31 { |
| | | description |
| Removed deprecated policy container under route-monitoring | | "Removed deprecated policy container under route-monitoring"; |
| 2024-01-23 | | } |
| | | revision 2024-01-23 { |
| | | description |
| Updated containers for export to vrf allow-imported-vpn | | "Updated containers for export to vrf allow-imported-vpn |
| disable-adv-source-vrf-vni allow backup best-external | | disable-adv-source-vrf-vni allow backup best-external"; |
| 2024-01-18 | | } |
| | | revision 2024-01-18 { |
| | | description |
| BGP neighbor level fast-fallover for both IBGP and EBGP | | "BGP neighbor level fast-fallover for both IBGP and EBGP"; |
| 2024-01-16 | | } |
| | | revision 2024-01-16 { |
| | | description |
| Added prefix-download-delay | | "Added prefix-download-delay"; |
| 2023-12-21 | | } |
| | | revision 2023-12-21 { |
| | | description |
| Addpath support to limit additional-paths with additional-paths advertise-limit | | "Addpath support to limit additional-paths with additional-paths advertise-limit"; |
| 2023-12-13 | | } |
| | | revision 2023-12-13 { |
| | | description |
| Added leaf route-policy under global non-afi container optimal-route-reflection | | "Added leaf route-policy under global non-afi container optimal-route-reflection"; |
| 2023-12-08 | | } |
| | | revision 2023-12-08 { |
| | | description |
| Updated containers for import from vrf advertise-as-vpn allow backup best-external | | "Updated containers for import from vrf advertise-as-vpn allow backup best-external"; |
| 2023-12-03 | | } |
| | | revision 2023-12-03 { |
| | | description |
| Updated sch-pathnames for next-hop-self | | "Updated sch-pathnames for next-hop-self"; |
| 2023-08-04 | | } |
| | | revision 2023-08-04 { |
| | | description |
| Added MPLS-VPN label mode per-vrf-46 option | | "Added MPLS-VPN label mode per-vrf-46 option"; |
| 2023-07-12 | | } |
| | | revision 2023-07-12 { |
| | | description |
| Support for allocate-secondary-label | | "Support for allocate-secondary-label"; |
| 2023-06-05 | | } |
| | | revision 2023-06-05 { |
| | | description |
| Support for local aggregates OC | | "Support for local aggregates OC"; |
| 2023-05-01 | | } |
| | | revision 2023-05-01 { |
| | | description |
| Added per-vrf-46 segment-routing srv6 alloc mode | | "Added per-vrf-46 segment-routing srv6 alloc mode"; |
| 2023-04-18 | | } |
| | | revision 2023-04-18 { |
| | | description |
| 1. Added allowconfedas-in leaf | | "1. Added allowconfedas-in leaf |
| 2. Added nexthop route-policy under vrf leafs | | 2. Added nexthop route-policy under vrf leafs"; |
| 2023-03-15 | | } |
| | | revision 2023-03-15 { |
| | | description |
| Added segment-routing SRv6 uSID allocate from | | "Added segment-routing SRv6 uSID allocate from |
| WLIB | | WLIB"; |
| 2023-02-27 | | } |
| | | revision 2023-02-27 { |
| | | description |
| Added maximum-paths route-policy and eibgp equal-cost leaf | | "Added maximum-paths route-policy and eibgp equal-cost leaf"; |
| 2023-02-06 | | } |
| | | revision 2023-02-06 { |
| | | description |
| Added LPTS secure binding leaf | | "Added LPTS secure binding leaf"; |
| 2023-01-25 | | } |
| | | revision 2023-01-25 { |
| | | description |
| Support for update in error-handling | | "Support for update in error-handling"; |
| 2022-12-13 | | } |
| | | revision 2022-12-13 { |
| | | description |
| Support for evpn-link-bandwidth | | "Support for evpn-link-bandwidth"; |
| 2022-12-09 | | } |
| | | revision 2022-12-09 { |
| | | description |
| Added OC-BGP neighbor logging and addpath | | "Added OC-BGP neighbor logging and addpath"; |
| 2022-12-08 | | } |
| | | revision 2022-12-08 { |
| | | description |
| 1. Added OC-BGP restart timer | | "1. Added OC-BGP restart timer |
| 2. Added EVPN host import knobs under AF v4/v6 of | | 2. Added EVPN host import knobs under AF v4/v6 of |
| n | global VRF. | n | global VRF."; |
| 2022-11-05 | | } |
| | | revision 2022-11-05 { |
| | | description |
| Updated slow-peer static and dynamic leafs | | "Updated slow-peer static and dynamic leafs"; |
| 2022-10-04 | | } |
| | | revision 2022-10-04 { |
| | | description |
| Added OC-BGP replace-private-as | | "Added OC-BGP replace-private-as"; |
| 2022-09-23 | | } |
| | | revision 2022-09-23 { |
| | | description |
| Added BMP route-monitoring suport for L3VPN inbound post-policy | | "Added BMP route-monitoring suport for L3VPN inbound post-policy |
| and Local RIB, | | and Local RIB, |
| n | Deprecated container policy under route-monitoring | n | Deprecated container policy under route-monitoring"; |
| 2022-09-19 | | } |
| | | revision 2022-09-19 { |
| | | description |
| Added EVPN Gateway IP disable | | "Added EVPN Gateway IP disable"; |
| 2022-08-16 | | } |
| | | revision 2022-08-16 { |
| | | description |
| Updated slow-peer feature | | "Updated slow-peer feature"; |
| 2022-07-14 | | } |
| | | revision 2022-07-14 { |
| | | description |
| Added OC-BGP mtu-discovery | | "Added OC-BGP mtu-discovery"; |
| 2022-07-11 | | } |
| | | revision 2022-07-11 { |
| | | description |
| Added missing description statement to nodes | | "Added missing description statement to nodes"; |
| 2022-06-20 | | } |
| | | revision 2022-06-20 { |
| | | description |
| Added delay/startup support under wait-install | | "Added delay/startup support under wait-install"; |
| 2022-03-03 | | } |
| | | revision 2022-03-03 { |
| | | description |
| Added leaf percentage-threshold-high under bandwidth-aware | | "Added leaf percentage-threshold-high under bandwidth-aware"; |
| 2022-02-18 | | } |
| | | revision 2022-02-18 { |
| | | description |
| Updated maximum-paths ebgp/eibgp and ibgp to remove unused container 'order' and fix pack format | | "Updated maximum-paths ebgp/eibgp and ibgp to remove unused container 'order' and fix pack format"; |
| 2021-10-20 | | } |
| | | revision 2021-10-20 { |
| | | description |
| Added force node under sr-policy"; | | "Added force node under sr-policy"; |
| semver:module-version "5.0.0"; | | |
| } | | } |
| revision 2021-10-19 { | | revision 2021-10-19 { |
| description | | description |
| n | "Added leaf flex-algo under container optimal-route-reflection | n | "Added leaf flex-algo under container optimal-route-reflection"; |
| 2021-09-21 | | } |
| | | revision 2021-09-21 { |
| | | description |
| Added retention under route-policy | | "Added retention under route-policy"; |
| 2021-08-27 | | } |
| | | revision 2021-08-27 { |
| | | description |
| Increase maximum-paths ebgp range to 1024, | | "Increase maximum-paths ebgp range to 1024, |
| Added preference under rpki/server, | | Added preference under rpki/server, |
| Added datafile under rpki, | | Added datafile under rpki, |
| Added unique-nexthop-check-disable under maximum-paths, | | Added unique-nexthop-check-disable under maximum-paths, |
| n | Added table-version under address-family | n | Added table-version under address-family"; |
| 2021-08-23 | | } |
| | | revision 2021-08-23 { |
| | | description |
| Added epe-bgp/labeled-unicast under advertise and epe/backup/enable | | "Added epe-bgp/labeled-unicast under advertise and epe/backup/enable |
| Added deterministic under unequal-cost of maximum-paths | | Added deterministic under unequal-cost of maximum-paths |
| Added container export under address family | | Added container export under address family |
| Added leaf route-policy under srv6/alloc | | Added leaf route-policy under srv6/alloc |
| Added container bandwidth-aware | | Added container bandwidth-aware |
| Added leaf route-policy under srv6/alloc of vrfs | | Added leaf route-policy under srv6/alloc of vrfs |
| Added node deterministic under unequal-cost of maximum-paths/address family | | Added node deterministic under unequal-cost of maximum-paths/address family"; |
| 2021-07-29 | | } |
| | | revision 2021-07-29 { |
| | | description |
| Removed duplicate enforce-first-as-disable which serve same as enforce-first-as/disable"; | | "Removed duplicate enforce-first-as-disable which serve same as enforce-first-as/disable"; |
| semver:module-version "4.0.0"; | | |
| } | | } |
| revision 2021-05-31 { | | revision 2021-05-31 { |
| description | | description |
| n | "Added must statement under list instances router->bgp | n | "Added must statement under list instances router->bgp"; |
| 2021-03-15 | | } |
| | | revision 2021-03-15 { |
| | | description |
| Added sr-policy under router-bgp->bgp->bestpath and | | "Added sr-policy under router-bgp->bgp->bestpath and |
| router-bgp->vrf->bgp->bestpath | | router-bgp->vrf->bgp->bestpath"; |
| 2021-02-25 | | } |
| | | revision 2021-02-25 { |
| | | description |
| Added multipath container under vrf->neighbors->address-family | | "Added multipath container under vrf->neighbors->address-family"; |
| 2021-02-17 | | } |
| | | revision 2021-02-17 { |
| | | description |
| Added must constraints in af-group list | | "Added must constraints in af-group list"; |
| 2021-02-11 | | } |
| | | revision 2021-02-11 { |
| | | description |
| Removed presence statement from match node under eigrp container | | "Removed presence statement from match node under eigrp container"; |
| 2021-02-10 | | } |
| | | revision 2021-02-10 { |
| | | description |
| Added labeled-unicast under best-external | | "Added labeled-unicast under best-external"; |
| 2021-02-04 | | } |
| | | revision 2021-02-04 { |
| | | description |
| Added sr-policy under nexthop & igp-metric | | "Added sr-policy under nexthop & igp-metric"; |
| 2021-02-03 | | } |
| | | revision 2021-02-03 { |
| | | description |
| Added container option-b-asbr-only | | "Added container option-b-asbr-only "; |
| 2020-11-16 | | } |
| | | revision 2020-11-16 { |
| | | description |
| Added srte-metric and validation under nexthop | | "Added srte-metric and validation under nexthop"; |
| 2020-11-10 | | } |
| | | revision 2020-11-10 { |
| | | description |
| Added mask-length under local-address-subnet as needed | | "Added mask-length under local-address-subnet as needed"; |
| 2020-10-22 | | } |
| | | revision 2020-10-22 { |
| | | description |
| Added rpki-dropped-only/rpki-tested-only under | | "Added rpki-dropped-only/rpki-tested-only under |
| soft-reconfiguration/inbound. Updated must statements accordingly | | soft-reconfiguration/inbound. Updated must statements accordingly |
| to define proper constraints with new nodes. | | to define proper constraints with new nodes."; |
| 2020-09-30 | | } |
| | | revision 2020-09-30 { |
| | | description |
| Added multipath under neighbor address-family | | "Added multipath under neighbor address-family"; |
| 2020-08-12 | | } |
| | | revision 2020-08-12 { |
| | | description |
| Added route-target container under retain. | | "Added route-target container under retain. |
| Added per-nexthop-received-label under mode. | | Added per-nexthop-received-label under mode. |
| Added appropriate when statements under retain/mode containers. | | Added appropriate when statements under retain/mode containers. |
| Removed per-prefix under vrf as it's not supported. | | Removed per-prefix under vrf as it's not supported."; |
| 2020-08-05 | | } |
| | | revision 2020-08-05 { |
| | | description |
| Added some must statements as needed | | "Added some must statements as needed"; |
| 2020-07-30 | | } |
| | | revision 2020-07-30 { |
| | | description |
| Added when statement to local-labeled-route under address-family | | "Added when statement to local-labeled-route under address-family |
| hierarchy and removed one presence statement as needed"; | | hierarchy and removed one presence statement as needed"; |
| semver:module-version "3.0.0"; | | |
| } | | } |
| revision 2020-07-24 { | | revision 2020-07-24 { |
| description | | description |
| "Added internal under remove-private-as. Also added must statements | | "Added internal under remove-private-as. Also added must statements |
| n | under remove-private-as as appropriate. | n | under remove-private-as as appropriate."; |
| 2020-06-05 | | |
| Removed unused nodes from vrf address-family | | |
| Added constraint to nodes under as-format | | |
| 2020-05-17 | | |
| (1) Added enable/label-mode under as | | |
| (2) Added srv6 under encapsulation-type | | |
| (3) Added vpnv4/vpnv6/l2vpn nodes under advertise | | |
| (4) Added segment-routing node under neighbors/neighbor/address-family | | |
| (5) Changed integer range of multipath, message-log-buffer-size, purge-time | | |
| (6) Added minimum-ipv6 node under nexthop/resolution/prefix-length | | |
| (7) Changed sysdb path of log node and its chilren | | |
| (8) Changed sysdb path of suppress node and its children | | |
| (9) Added extended-nexthop-encoding node under suppress | | |
| (10) Added update node under neighbor-group/address-families/address-family | | |
| (11) Added retain-nbr-routes under graceful-restart | | |
| | | |
| 2020-04-14 | | |
| Added rd augment to vrf model | | |
| 2020-03-13 | | |
| Added corresponding nodes for peer-set-id, adjacencies, | | |
| peer-set and peer-node-sid"; | | |
| semver:module-version "2.0.0"; | | |
| } | | } |
| n | revision 2019-06-10 { | n | revision 2020-07-21 { |
| description | | description |
| t | "Establish semantic version baseline."; | t | "Added apply and fallback-default-bestpath container under |
| semver:module-version "1.0.0"; | | address-family optimal-route-reflection. Also removed mandatory and |
| | | added must statements under address-family optimal-reoute-reflection. |
| | | Added optimal-route-reflection container under global and vrf global"; |
| | | } |
| | | revision 2020-06-05 { |
| | | description |
| | | "Removed unused nodes from vrf address-family |
| | | Added constraint to nodes under as-format"; |
| | | } |
| | | revision 2020-05-18 { |
| | | description |
| | | "(1) Added enable/label-mode under as |
| | | (2) Added srv6 under encapsulation-type |
| | | (3) Added vpnv4/vpnv6/l2vpn nodes under advertise |
| | | (4) Added segment-routing node under neighbors/neighbor/address-family |
| | | (5) Changed integer range of multipath, message-log-buffer-size, purge-time |
| | | (6) Added minimum-ipv6 node under nexthop/resolution/prefix-length |
| | | (7) Added event node under address-family |
| | | (8) Added slow-peer under neighbor/address-families/address-family |
| | | (9) Added extended-nexthop-encoding node under suppress |
| | | (10) Added update node under neighbor-group/address-families/address-family |
| | | (11) Added retain-nbr-routes under graceful-restart |
| | | "; |
| | | } |
| | | revision 2020-04-14 { |
| | | description |
| | | "Added rd augment to vrf model"; |
| | | } |
| | | revision 2020-03-13 { |
| | | description |
| | | "Added corresponding nodes for peer-set-id, adjacencies, |
| | | peer-set and peer-node-sid"; |
| } | | } |
| revision 2019-03-30 { | | revision 2019-03-30 { |
| description | | description |
| "Initial version"; | | "Initial version"; |
| } | | } |
| | | |
| typedef Bgp-address-family { | | typedef Bgp-address-family { |
| type enumeration { | | type enumeration { |
| enum "ipv4-unicast" { | | enum "ipv4-unicast" { |
| value 0; | | value 0; |
| description | | description |
| "IPv4 unicast"; | | "IPv4 unicast"; |
| } | | } |
| enum "ipv4-multicast" { | | enum "ipv4-multicast" { |
| value 1; | | value 1; |
| description | | description |
| "IPv4 multicast"; | | "IPv4 multicast"; |
| } | | } |
| enum "ipv4-labeled-unicast" { | | enum "ipv4-labeled-unicast" { |
| value 2; | | value 2; |
| description | | description |
| "IPv4 labeled-unicast"; | | "IPv4 labeled-unicast"; |
| } | | } |
| enum "ipv4-tunnel" { | | enum "ipv4-tunnel" { |
| value 3; | | value 3; |
| description | | description |
| "IPv4 tunnel"; | | "IPv4 tunnel"; |
| } | | } |
| enum "vpnv4-unicast" { | | enum "vpnv4-unicast" { |
| value 4; | | value 4; |
| description | | description |
| "VPNv4 unicast"; | | "VPNv4 unicast"; |
| } | | } |
| enum "ipv6-unicast" { | | enum "ipv6-unicast" { |
| value 5; | | value 5; |
| description | | description |
| "IPv6 unicast"; | | "IPv6 unicast"; |
| } | | } |
| enum "ipv6-multicast" { | | enum "ipv6-multicast" { |
| value 6; | | value 6; |
| description | | description |
| "IPv6 multicast"; | | "IPv6 multicast"; |
| } | | } |
| enum "ipv6-labeled-unicast" { | | enum "ipv6-labeled-unicast" { |
| value 7; | | value 7; |
| description | | description |
| "IPv6 labeled-unicast"; | | "IPv6 labeled-unicast"; |
| } | | } |
| enum "vpnv6-unicast" { | | enum "vpnv6-unicast" { |
| value 8; | | value 8; |
| description | | description |
| "VPNv6 unicast"; | | "VPNv6 unicast"; |
| } | | } |
| enum "ipv4-mdt" { | | enum "ipv4-mdt" { |
| value 9; | | value 9; |
| description | | description |
| "IPv4 MDT"; | | "IPv4 MDT"; |
| } | | } |
| enum "l2vpn-vpls-vpws" { | | enum "l2vpn-vpls-vpws" { |
| value 10; | | value 10; |
| description | | description |
| "L2VPN VPLS-VPWS"; | | "L2VPN VPLS-VPWS"; |
| } | | } |
| enum "ipv4-rt-filter" { | | enum "ipv4-rt-filter" { |
| value 11; | | value 11; |
| description | | description |
| "IPv4 rt-filter"; | | "IPv4 rt-filter"; |
| } | | } |
| enum "ipv4-mvpn" { | | enum "ipv4-mvpn" { |
| value 12; | | value 12; |
| description | | description |
| "IPv4 MVPN"; | | "IPv4 MVPN"; |
| } | | } |
| enum "ipv6-mvpn" { | | enum "ipv6-mvpn" { |
| value 13; | | value 13; |
| description | | description |
| "IPv6 MVPN"; | | "IPv6 MVPN"; |
| } | | } |
| enum "l2vpn-evpn" { | | enum "l2vpn-evpn" { |
| value 14; | | value 14; |
| description | | description |
| "L2VPN EVPN"; | | "L2VPN EVPN"; |
| } | | } |
| enum "link-state-link-state" { | | enum "link-state-link-state" { |
| value 15; | | value 15; |
| description | | description |
| "Link-state link-state"; | | "Link-state link-state"; |
| } | | } |
| enum "vpnv4-multicast" { | | enum "vpnv4-multicast" { |
| value 16; | | value 16; |
| description | | description |
| "VPNv4 Multicast"; | | "VPNv4 Multicast"; |
| } | | } |
| enum "vpnv6-multicast" { | | enum "vpnv6-multicast" { |
| value 17; | | value 17; |
| description | | description |
| "VPNv6 Multicast"; | | "VPNv6 Multicast"; |
| } | | } |
| enum "ipv4-flowspec" { | | enum "ipv4-flowspec" { |
| value 18; | | value 18; |
| description | | description |
| "IPv4 flowspec"; | | "IPv4 flowspec"; |
| } | | } |
| enum "ipv6-flowspec" { | | enum "ipv6-flowspec" { |
| value 19; | | value 19; |
| description | | description |
| "IPv6 flowspec"; | | "IPv6 flowspec"; |
| } | | } |
| enum "vpnv4-flowspec" { | | enum "vpnv4-flowspec" { |
| value 20; | | value 20; |
| description | | description |
| "VPNv4 flowspec"; | | "VPNv4 flowspec"; |
| } | | } |
| enum "vpnv6-flowspec" { | | enum "vpnv6-flowspec" { |
| value 21; | | value 21; |
| description | | description |
| "VPNv6 flowspec"; | | "VPNv6 flowspec"; |
| } | | } |
| enum "l2vpn-mspw" { | | enum "l2vpn-mspw" { |
| value 22; | | value 22; |
| description | | description |
| "L2VPN MSPW"; | | "L2VPN MSPW"; |
| } | | } |
| enum "ipv4-sr-policy" { | | enum "ipv4-sr-policy" { |
| value 23; | | value 23; |
| description | | description |
| "IPv4 SRPolicy"; | | "IPv4 SRPolicy"; |
| } | | } |
| enum "ipv6-sr-policy" { | | enum "ipv6-sr-policy" { |
| value 24; | | value 24; |
| description | | description |
| "IPv6 SRPolicy"; | | "IPv6 SRPolicy"; |
| } | | } |
| enum "all-address-family" { | | enum "all-address-family" { |
| value 25; | | value 25; |
| description | | description |
| "All Address Families"; | | "All Address Families"; |
| } | | } |
| } | | } |
| description | | description |
| "Bgp address family"; | | "Bgp address family"; |
| } | | } |
| | | |
| typedef Bgp-attribute-code { | | typedef Bgp-attribute-code { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0 | 4..14"; | | range "0 | 4..14"; |
| } | | } |
| type uint32 { | | type uint32 { |
| range "6..255"; | | range "6..255"; |
| } | | } |
| type enumeration { | | type enumeration { |
| enum "AGGREGATOR" { | | enum "AGGREGATOR" { |
| value 7; | | value 7; |
| description | | description |
| "Aggregator attribute (7)"; | | "Aggregator attribute (7)"; |
| } | | } |
| enum "AIGP" { | | enum "AIGP" { |
| value 26; | | value 26; |
| description | | description |
| "AIGP attribute (26)"; | | "AIGP attribute (26)"; |
| } | | } |
| enum "AS4-AGGREGATOR" { | | enum "AS4-AGGREGATOR" { |
| value 18; | | value 18; |
| description | | description |
| "AS4_AGGREGATOR attribute (18)"; | | "AS4_AGGREGATOR attribute (18)"; |
| } | | } |
| enum "AS4-PATH" { | | enum "AS4-PATH" { |
| value 17; | | value 17; |
| description | | description |
| "AS4_PATH attribute (17)"; | | "AS4_PATH attribute (17)"; |
| } | | } |
| enum "ATOMIC-AGGREGATE" { | | enum "ATOMIC-AGGREGATE" { |
| value 6; | | value 6; |
| description | | description |
| "Atomic aggrgate attribute (6)"; | | "Atomic aggrgate attribute (6)"; |
| } | | } |
| enum "ATTRSET" { | | enum "ATTRSET" { |
| value 128; | | value 128; |
| description | | description |
| "ATTR_SET attribute (128)"; | | "ATTR_SET attribute (128)"; |
| } | | } |
| enum "CLUSTER-LIST" { | | enum "CLUSTER-LIST" { |
| value 10; | | value 10; |
| description | | description |
| "Cluster List attribute (10)"; | | "Cluster List attribute (10)"; |
| } | | } |
| enum "COMMUNITY" { | | enum "COMMUNITY" { |
| value 8; | | value 8; |
| description | | description |
| "Community attribute (8)"; | | "Community attribute (8)"; |
| } | | } |
| enum "CONNECTOR" { | | enum "CONNECTOR" { |
| value 20; | | value 20; |
| description | | description |
| "Connector attribute (20)"; | | "Connector attribute (20)"; |
| } | | } |
| enum "EXTENDED-COMMUNITIES" { | | enum "EXTENDED-COMMUNITIES" { |
| value 16; | | value 16; |
| description | | description |
| "Extended community attribute (16)"; | | "Extended community attribute (16)"; |
| } | | } |
| enum "LARGE-COMMUNITY" { | | enum "LARGE-COMMUNITY" { |
| value 32; | | value 32; |
| description | | description |
| "Large Community attribute (32)"; | | "Large Community attribute (32)"; |
| } | | } |
| enum "LOCAL-PREF" { | | enum "LOCAL-PREF" { |
| value 5; | | value 5; |
| description | | description |
| "Local Preference attribute (5)"; | | "Local Preference attribute (5)"; |
| } | | } |
| enum "LSATTR" { | | enum "LSATTR" { |
| value 29; | | value 29; |
| description | | description |
| "Link-state attribute (29)"; | | "Link-state attribute (29)"; |
| } | | } |
| enum "MULTI-EXIT-DISC" { | | enum "MULTI-EXIT-DISC" { |
| value 4; | | value 4; |
| description | | description |
| "MED attribute (4)"; | | "MED attribute (4)"; |
| } | | } |
| enum "ORIGINATOR-ID" { | | enum "ORIGINATOR-ID" { |
| value 9; | | value 9; |
| description | | description |
| "Originator attribute (9)"; | | "Originator attribute (9)"; |
| } | | } |
| enum "PMSI-TUNNEL" { | | enum "PMSI-TUNNEL" { |
| value 22; | | value 22; |
| description | | description |
| "PMSI Tunnel attribute (22)"; | | "PMSI Tunnel attribute (22)"; |
| } | | } |
| enum "PPMP" { | | enum "PPMP" { |
| value 70; | | value 70; |
| description | | description |
| "PPMP attribute (70)"; | | "PPMP attribute (70)"; |
| } | | } |
| enum "PREFIX-SID" { | | enum "PREFIX-SID" { |
| value 40; | | value 40; |
| description | | description |
| "Prefix-SID attribute (40)"; | | "Prefix-SID attribute (40)"; |
| } | | } |
| enum "SSA" { | | enum "SSA" { |
| value 19; | | value 19; |
| description | | description |
| "SAFI specific attribute (19)"; | | "SAFI specific attribute (19)"; |
| } | | } |
| enum "TUNNEL-ENCAP" { | | enum "TUNNEL-ENCAP" { |
| value 23; | | value 23; |
| description | | description |
| "Tunnel-Encapsulation attribute (23)"; | | "Tunnel-Encapsulation attribute (23)"; |
| } | | } |
| } | | } |
| } | | } |
| description | | description |
| "Bgp attribute code"; | | "Bgp attribute code"; |
| } | | } |
| | | |
| typedef Bmp-mode { | | typedef Bmp-mode { |
| type enumeration { | | type enumeration { |
| enum "inbound-pre-policy" { | | enum "inbound-pre-policy" { |
| value 0; | | value 0; |
| description | | description |
| "Pickup routes at inbound direction from peer | | "Pickup routes at inbound direction from peer |
| before application of route-policy"; | | before application of route-policy"; |
| } | | } |
| enum "inbound-post-policy" { | | enum "inbound-post-policy" { |
| value 1; | | value 1; |
| description | | description |
| "Pickup routes at inbound direction from peer | | "Pickup routes at inbound direction from peer |
| after application of route-policy"; | | after application of route-policy"; |
| } | | } |
| enum "local-rib" { | | enum "local-rib" { |
| value 4; | | value 4; |
| description | | description |
| "Pickup routes that have been selected by the | | "Pickup routes that have been selected by the |
| local BGP speaker's decision process"; | | local BGP speaker's decision process"; |
| } | | } |
| } | | } |
| description | | description |
| "Bmp route monitor mode"; | | "Bmp route monitor mode"; |
| } | | } |
| | | |
| grouping VRF-COMMON { | | grouping VRF-COMMON { |
| description | | description |
| "Grouping for vrf"; | | "Grouping for vrf"; |
| container import { | | container import { |
| description | | description |
| "VRF import"; | | "VRF import"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Use route-policy for import filtering"; | | "Use route-policy for import filtering"; |
| } | | } |
| container from { | | container from { |
| description | | description |
| "Import routes from a VRF"; | | "Import routes from a VRF"; |
| container default-vrf { | | container default-vrf { |
| description | | description |
| "Import routes from the default VRF"; | | "Import routes from the default VRF"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Use route-policy for import filtering"; | | "Use route-policy for import filtering"; |
| } | | } |
| container advertise-as-vpn { | | container advertise-as-vpn { |
| must "../route-policy"; | | must "../route-policy"; |
| presence "Indicates a advertise-as-vpn node is configured."; | | presence "Indicates a advertise-as-vpn node is configured."; |
| description | | description |
| "Advertise imported routes to PEs"; | | "Advertise imported routes to PEs"; |
| } | | } |
| } | | } |
| container vrf { | | container vrf { |
| must "advertise-as-vpn or allow"; | | must "advertise-as-vpn or allow"; |
| presence "Indicates a vrf node is configured."; | | presence "Indicates a vrf node is configured."; |
| description | | description |
| "VRF import"; | | "VRF import"; |
| container advertise-as-vpn { | | container advertise-as-vpn { |
| presence "Indicates a advertise-as-vpn node is configured."; | | presence "Indicates a advertise-as-vpn node is configured."; |
| description | | description |
| "Advertise imported routes to PEs"; | | "Advertise imported routes to PEs"; |
| } | | } |
| container allow { | | container allow { |
| must "backup or best-external"; | | must "backup or best-external"; |
| description | | description |
| "Allow import of paths based on path-types"; | | "Allow import of paths based on path-types"; |
| container backup { | | container backup { |
| presence "Indicates a backup node is configured."; | | presence "Indicates a backup node is configured."; |
| description | | description |
| "Allow import of backup path"; | | "Allow import of backup path"; |
| } | | } |
| container best-external { | | container best-external { |
| presence "Indicates a best-external node is configured."; | | presence "Indicates a best-external node is configured."; |
| description | | description |
| "Allow import of best-external path"; | | "Allow import of best-external path"; |
| } | | } |
| } | | } |
| } | | } |
| container bridge-domain { | | container bridge-domain { |
| description | | description |
| "VRF import"; | | "VRF import"; |
| container advertise-as-vpn { | | container advertise-as-vpn { |
| presence "Indicates a advertise-as-vpn node is configured."; | | presence "Indicates a advertise-as-vpn node is configured."; |
| description | | description |
| "Advertise local EVPN imported routes to PEs"; | | "Advertise local EVPN imported routes to PEs"; |
| } | | } |
| } | | } |
| } | | } |
| container route-target { | | container route-target { |
| description | | description |
| "Specify import route target extended communities"; | | "Specify import route target extended communities"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "as-number index stitching"; | | key "as-number index stitching"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf as-number { | | leaf as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| leaf stitching { | | leaf stitching { |
| type boolean; | | type boolean; |
| description | | description |
| "These are stitching RTs"; | | "These are stitching RTs"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "as-number index stitching"; | | key "as-number index stitching"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf as-number { | | leaf as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| leaf stitching { | | leaf stitching { |
| type boolean; | | type boolean; |
| description | | description |
| "These are stitching RTs"; | | "These are stitching RTs"; |
| } | | } |
| } | | } |
| } | | } |
| container ip-addresse-rts { | | container ip-addresse-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ip-address-rt { | | list ip-address-rt { |
| key "ip-address index stitching"; | | key "ip-address index stitching"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ip-address { | | leaf ip-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IPv4Address:index (hex or decimal format)"; | | "IPv4Address:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IPv4Address:index (hex or decimal format)"; | | "IPv4Address:index (hex or decimal format)"; |
| } | | } |
| leaf stitching { | | leaf stitching { |
| type boolean; | | type boolean; |
| description | | description |
| "These are stitching RTs"; | | "These are stitching RTs"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container export { | | container export { |
| description | | description |
| "VRF export"; | | "VRF export"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Use route-policy for export"; | | "Use route-policy for export"; |
| } | | } |
| container to { | | container to { |
| description | | description |
| "Export routes to a VRF"; | | "Export routes to a VRF"; |
| container default-vrf { | | container default-vrf { |
| description | | description |
| "Export routes to the default VRF"; | | "Export routes to the default VRF"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Use route-policy for export"; | | "Use route-policy for export"; |
| } | | } |
| container allow-imported-vpn { | | container allow-imported-vpn { |
| presence "Indicates a allow-imported-vpn node is configured."; | | presence "Indicates a allow-imported-vpn node is configured."; |
| description | | description |
| "Allow export of imported VPN routes to default VRF"; | | "Allow export of imported VPN routes to default VRF"; |
| } | | } |
| } | | } |
| container vrf { | | container vrf { |
| presence "Indicates a vrf node is configured."; | | presence "Indicates a vrf node is configured."; |
| description | | description |
| "VRF export"; | | "VRF export"; |
| container allow-imported-vpn { | | container allow-imported-vpn { |
| presence "Indicates a allow-imported-vpn node is configured."; | | presence "Indicates a allow-imported-vpn node is configured."; |
| description | | description |
| "Allow export of imported VPN routes to non-default VRF"; | | "Allow export of imported VPN routes to non-default VRF"; |
| container disable-adv-source-vrf-vni { | | container disable-adv-source-vrf-vni { |
| presence "Indicates a disable-adv-source-vrf-vni node is configured."; | | presence "Indicates a disable-adv-source-vrf-vni node is configured."; |
| description | | description |
| "Disable advertisement of source vrf vni for leaked route"; | | "Disable advertisement of source vrf vni for leaked route"; |
| } | | } |
| } | | } |
| container allow { | | container allow { |
| description | | description |
| "Allow export of paths based on path-types"; | | "Allow export of paths based on path-types"; |
| container backup { | | container backup { |
| presence "Indicates a backup node is configured."; | | presence "Indicates a backup node is configured."; |
| description | | description |
| "Allow Export of backup path"; | | "Allow Export of backup path"; |
| } | | } |
| container best-external { | | container best-external { |
| presence "Indicates a best-external node is configured."; | | presence "Indicates a best-external node is configured."; |
| description | | description |
| "Allow Export of best-external path"; | | "Allow Export of best-external path"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container route-target { | | container route-target { |
| description | | description |
| "Specify export route target extended communities"; | | "Specify export route target extended communities"; |
| container two-byte-as-rts { | | container two-byte-as-rts { |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| list two-byte-as-rt { | | list two-byte-as-rt { |
| key "as-number index stitching"; | | key "as-number index stitching"; |
| description | | description |
| "Two Byte AS Number Route Target"; | | "Two Byte AS Number Route Target"; |
| leaf as-number { | | leaf as-number { |
| type uint32 { | | type uint32 { |
| range "1..65535"; | | range "1..65535"; |
| } | | } |
| description | | description |
| "Two Byte AS Number"; | | "Two Byte AS Number"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| leaf stitching { | | leaf stitching { |
| type boolean; | | type boolean; |
| description | | description |
| "These are stitching RTs"; | | "These are stitching RTs"; |
| } | | } |
| } | | } |
| } | | } |
| container four-byte-as-rts { | | container four-byte-as-rts { |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| list four-byte-as-rt { | | list four-byte-as-rt { |
| key "as-number index stitching"; | | key "as-number index stitching"; |
| description | | description |
| "Four Byte AS number Route Target"; | | "Four Byte AS number Route Target"; |
| leaf as-number { | | leaf as-number { |
| type uint32 { | | type uint32 { |
| range "65536..4294967295"; | | range "65536..4294967295"; |
| } | | } |
| description | | description |
| "Four Byte AS number"; | | "Four Byte AS number"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| leaf stitching { | | leaf stitching { |
| type boolean; | | type boolean; |
| description | | description |
| "These are stitching RTs"; | | "These are stitching RTs"; |
| } | | } |
| } | | } |
| } | | } |
| container ip-addresse-rts { | | container ip-addresse-rts { |
| description | | description |
| "IP address Route Target"; | | "IP address Route Target"; |
| list ip-address-rt { | | list ip-address-rt { |
| key "ip-address index stitching"; | | key "ip-address index stitching"; |
| description | | description |
| "IP address"; | | "IP address"; |
| leaf ip-address { | | leaf ip-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IP address"; | | "IP address"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IPv4Address:index (hex or decimal format)"; | | "IPv4Address:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| description | | description |
| "IPv4Address:index (hex or decimal format)"; | | "IPv4Address:index (hex or decimal format)"; |
| } | | } |
| leaf stitching { | | leaf stitching { |
| type boolean; | | type boolean; |
| description | | description |
| "These are stitching RTs"; | | "These are stitching RTs"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| | | |
| grouping VRF-RD { | | grouping VRF-RD { |
| description | | description |
| "Grouping for vrf-rd"; | | "Grouping for vrf-rd"; |
| container rd { | | container rd { |
| description | | description |
| "route distinguisher"; | | "route distinguisher"; |
| container two-byte-as { | | container two-byte-as { |
| must "not(../four-byte-as or ../ip-address)"; | | must "not(../four-byte-as or ../ip-address)"; |
| presence "Indicates a two-byte-as node is configured."; | | presence "Indicates a two-byte-as node is configured."; |
| description | | description |
| " two-byte-as route distinguisher"; | | " two-byte-as route distinguisher"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| mandatory true; | | mandatory true; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| container four-byte-as { | | container four-byte-as { |
| must "not(../two-byte-as or ../ip-address)"; | | must "not(../two-byte-as or ../ip-address)"; |
| presence "Indicates a four-byte-as node is configured."; | | presence "Indicates a four-byte-as node is configured."; |
| description | | description |
| "four-byte-as route distinguisher"; | | "four-byte-as route distinguisher"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| mandatory true; | | mandatory true; |
| description | | description |
| "4-byte AS number"; | | "4-byte AS number"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| container ip-address { | | container ip-address { |
| must "not(../two-byte-as or ../four-byte-as)"; | | must "not(../two-byte-as or ../four-byte-as)"; |
| presence "Indicates a ip-address node is configured."; | | presence "Indicates a ip-address node is configured."; |
| description | | description |
| "configure this node"; | | "configure this node"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| mandatory true; | | mandatory true; |
| description | | description |
| "configure this node"; | | "configure this node"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IPv4Address:index (hex or decimal format)"; | | "IPv4Address:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "IPv4Address:index (hex or decimal format)"; | | "IPv4Address:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| | | |
| grouping AS-COMMON { | | grouping AS-COMMON { |
| description | | description |
| "Grouping for as-common"; | | "Grouping for as-common"; |
| container rpki { | | container rpki { |
| description | | description |
| "Configure RPKI"; | | "Configure RPKI"; |
| container servers { | | container servers { |
| description | | description |
| "Configure RPKI cache-servers"; | | "Configure RPKI cache-servers"; |
| list server { | | list server { |
| key "server-id"; | | key "server-id"; |
| description | | description |
| "Configure RPKI cache-servers"; | | "Configure RPKI cache-servers"; |
| leaf server-id { | | leaf server-id { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Hostname or IP address"; | | "Hostname or IP address"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure RPKI cache-servers"; | | "Configure RPKI cache-servers"; |
| } | | } |
| container bind-source { | | container bind-source { |
| description | | description |
| "Specify a bind source for RPKI cache-server"; | | "Specify a bind source for RPKI cache-server"; |
| container interface { | | container interface { |
| description | | description |
| "Specify a source interface to bind the cache-server transport"; | | "Specify a source interface to bind the cache-server transport"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Interface Name"; | | "Interface Name"; |
| } | | } |
| } | | } |
| } | | } |
| leaf preference { | | leaf preference { |
| type uint32 { | | type uint32 { |
| range "1..10" { | | range "1..10" { |
| description | | description |
| "(Deprecated from 7.4.1) RPKI cache-server preference value (lower is better)"; | | "(Deprecated from 7.4.1) RPKI cache-server preference value (lower is better)"; |
| } | | } |
| } | | } |
| description | | description |
| "(Deprecated from 7.4.1) Specify a preference value for the RPKI cache"; | | "(Deprecated from 7.4.1) Specify a preference value for the RPKI cache"; |
| } | | } |
| container refresh-time { | | container refresh-time { |
| description | | description |
| "Time between sending serial-queries for the RPKI cache-server"; | | "Time between sending serial-queries for the RPKI cache-server"; |
| leaf refresh-time-value { | | leaf refresh-time-value { |
| type uint32 { | | type uint32 { |
| range "15..3600" { | | range "15..3600" { |
| description | | description |
| "Refresh time (in seconds)"; | | "Refresh time (in seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Refresh time (in seconds)"; | | "Refresh time (in seconds)"; |
| } | | } |
| container off { | | container off { |
| presence "Indicates a off node is configured."; | | presence "Indicates a off node is configured."; |
| description | | description |
| "Do not send serial-queries periodically"; | | "Do not send serial-queries periodically"; |
| } | | } |
| } | | } |
| container response-time { | | container response-time { |
| description | | description |
| "Time to wait for a response from the RPKI cache-server"; | | "Time to wait for a response from the RPKI cache-server"; |
| leaf response-time-value { | | leaf response-time-value { |
| type uint32 { | | type uint32 { |
| range "15..3600" { | | range "15..3600" { |
| description | | description |
| "Response time (in seconds)"; | | "Response time (in seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Response time (in seconds)"; | | "Response time (in seconds)"; |
| } | | } |
| container off { | | container off { |
| presence "Indicates a off node is configured."; | | presence "Indicates a off node is configured."; |
| description | | description |
| "Wait indefinitely for a response"; | | "Wait indefinitely for a response"; |
| } | | } |
| } | | } |
| leaf purge-time { | | leaf purge-time { |
| type uint32 { | | type uint32 { |
| range "30..65535" { | | range "30..65535" { |
| description | | description |
| "Purge time (in seconds)"; | | "Purge time (in seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Purge time (in seconds)"; | | "Purge time (in seconds)"; |
| } | | } |
| leaf username { | | leaf username { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "RPKI cache (SSH) username"; | | "RPKI cache (SSH) username"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify a (SSH) username for the RPKI cache-server"; | | "Specify a (SSH) username for the RPKI cache-server"; |
| } | | } |
| leaf password { | | leaf password { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "RPKI cache (SSH) password"; | | "RPKI cache (SSH) password"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify a (SSH) password for the RPKI cache-server"; | | "Specify a (SSH) password for the RPKI cache-server"; |
| } | | } |
| container transport { | | container transport { |
| description | | description |
| "Specify a transport method for the RPKI cache-server"; | | "Specify a transport method for the RPKI cache-server"; |
| container tcp { | | container tcp { |
| description | | description |
| "Connect to the RPKI cache-server using TCP (unencrypted)"; | | "Connect to the RPKI cache-server using TCP (unencrypted)"; |
| leaf port { | | leaf port { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Specify a port number for the RPKI cache-server transport"; | | "Specify a port number for the RPKI cache-server transport"; |
| } | | } |
| } | | } |
| must "not(../../ssh/port)"; | | must "not(../../ssh/port)"; |
| description | | description |
| "Specify a port number for the RPKI cache-server transport"; | | "Specify a port number for the RPKI cache-server transport"; |
| } | | } |
| } | | } |
| container ssh { | | container ssh { |
| description | | description |
| "Connect to the RPKI cache-server using SSH"; | | "Connect to the RPKI cache-server using SSH"; |
| leaf port { | | leaf port { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Specify a port number for the RPKI cache-server transport"; | | "Specify a port number for the RPKI cache-server transport"; |
| } | | } |
| } | | } |
| must "not(../../tcp/port)"; | | must "not(../../tcp/port)"; |
| description | | description |
| "Specify a port number for the RPKI cache-server transport"; | | "Specify a port number for the RPKI cache-server transport"; |
| } | | } |
| } | | } |
| } | | } |
| container shutdown { | | container shutdown { |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Shutdown the RPKI cache-server"; | | "Shutdown the RPKI cache-server"; |
| } | | } |
| } | | } |
| } | | } |
| container routes { | | container routes { |
| description | | description |
| "Configure an RPKI route"; | | "Configure an RPKI route"; |
| list route { | | list route { |
| key "address minimum-prefix-length maximum-prefix-length origin-as-number"; | | key "address minimum-prefix-length maximum-prefix-length origin-as-number"; |
| description | | description |
| "Configure an RPKI route"; | | "Configure an RPKI route"; |
| leaf address { | | leaf address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "Configure an RPKI route"; | | "Configure an RPKI route"; |
| } | | } |
| leaf minimum-prefix-length { | | leaf minimum-prefix-length { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0..32" { | | range "0..32" { |
| description | | description |
| "Minimum prefix length for ipv4 address"; | | "Minimum prefix length for ipv4 address"; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "0..128" { | | range "0..128" { |
| description | | description |
| "Minimum prefix length for ipv6 address"; | | "Minimum prefix length for ipv6 address"; |
| } | | } |
| } | | } |
| } | | } |
| description | | description |
| "Minimum prefix length"; | | "Minimum prefix length"; |
| } | | } |
| leaf maximum-prefix-length { | | leaf maximum-prefix-length { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "1..32" { | | range "1..32" { |
| description | | description |
| "Maximum prefix length for ipv4 address"; | | "Maximum prefix length for ipv4 address"; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "1..128" { | | range "1..128" { |
| description | | description |
| "Maximum prefix length for ipv6 addess"; | | "Maximum prefix length for ipv6 addess"; |
| } | | } |
| } | | } |
| } | | } |
| description | | description |
| "Maximum prefix length (Default 32/128 for IPv4/IPv6)"; | | "Maximum prefix length (Default 32/128 for IPv4/IPv6)"; |
| } | | } |
| leaf origin-as-number { | | leaf origin-as-number { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Origin Autonomous System number (in asplain format)"; | | "Origin Autonomous System number (in asplain format)"; |
| } | | } |
| } | | } |
| description | | description |
| "Origin Autonomous System number"; | | "Origin Autonomous System number"; |
| } | | } |
| } | | } |
| } | | } |
| leaf datafile { | | leaf datafile { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..800" { | | length "1..800" { |
| description | | description |
| "(Deprecated from 7.4.1) File name containing RPKI data entries"; | | "(Deprecated from 7.4.1) File name containing RPKI data entries"; |
| } | | } |
| } | | } |
| description | | description |
| "(Deprecated from 7.4.1) Configure an RPKI data file"; | | "(Deprecated from 7.4.1) Configure an RPKI data file"; |
| } | | } |
| } | | } |
| container address-families { | | container address-families { |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| list address-family { | | list address-family { |
| key "af-name"; | | key "af-name"; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| leaf af-name { | | leaf af-name { |
| type Bgp-address-family; | | type Bgp-address-family; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| } | | } |
| container vrf { | | container vrf { |
| when "../af-name = 'vpnv4-unicast' or ../af-name = 'vpnv6-unicast'"; | | when "../af-name = 'vpnv4-unicast' or ../af-name = 'vpnv6-unicast'"; |
| description | | description |
| "Specify configurations to be inherited to all vrfs"; | | "Specify configurations to be inherited to all vrfs"; |
| container all { | | container all { |
| presence "Indicates a all node is configured."; | | presence "Indicates a all node is configured."; |
| description | | description |
| "Specify configurations to be inherited to all vrfs"; | | "Specify configurations to be inherited to all vrfs"; |
| container source { | | container source { |
| description | | description |
| "Source import route-targets from import-policy"; | | "Source import route-targets from import-policy"; |
| container rt { | | container rt { |
| description | | description |
| "Source import route-targets from import-policy"; | | "Source import route-targets from import-policy"; |
| container import-policy { | | container import-policy { |
| presence "Indicates a import-policy node is configured."; | | presence "Indicates a import-policy node is configured."; |
| description | | description |
| "Source import route-targets from import-policy"; | | "Source import route-targets from import-policy"; |
| } | | } |
| } | | } |
| } | | } |
| container label { | | container label { |
| description | | description |
| "Label-related configuration"; | | "Label-related configuration"; |
| container mode { | | container mode { |
| description | | description |
| "Select label mode"; | | "Select label mode"; |
| container per-ce { | | container per-ce { |
| must "not(../per-vrf or ../route-policy or ../per-vrf-46)"; | | must "not(../per-vrf or ../route-policy or ../per-vrf-46)"; |
| presence "Indicates a per-ce node is configured."; | | presence "Indicates a per-ce node is configured."; |
| description | | description |
| "Set per CE label mode"; | | "Set per CE label mode"; |
| } | | } |
| container per-vrf { | | container per-vrf { |
| must "not(../per-ce or ../route-policy or ../per-vrf-46)"; | | must "not(../per-ce or ../route-policy or ../per-vrf-46)"; |
| presence "Indicates a per-vrf node is configured."; | | presence "Indicates a per-vrf node is configured."; |
| description | | description |
| "Set per VRF label mode"; | | "Set per VRF label mode"; |
| } | | } |
| container per-vrf-46 { | | container per-vrf-46 { |
| must "not(../per-ce or ../route-policy or ../per-vrf)"; | | must "not(../per-ce or ../route-policy or ../per-vrf)"; |
| presence "Indicates a per-vrf-46 node is configured."; | | presence "Indicates a per-vrf-46 node is configured."; |
| description | | description |
| "Set per VRF IPv4/IPv6 label mode"; | | "Set per VRF IPv4/IPv6 label mode"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| must "not(../per-ce or ../per-vrf or ../per-vrf-46)"; | | must "not(../per-ce or ../per-vrf or ../per-vrf-46)"; |
| description | | description |
| "Use a route policy to select prefixes for label allocation mode"; | | "Use a route policy to select prefixes for label allocation mode"; |
| } | | } |
| } | | } |
| } | | } |
| container rnh { | | container rnh { |
| description | | description |
| "Remote nexthop"; | | "Remote nexthop"; |
| container install { | | container install { |
| description | | description |
| "Install remote nexthop"; | | "Install remote nexthop"; |
| container extcomm { | | container extcomm { |
| presence "Indicates a extcomm node is configured."; | | presence "Indicates a extcomm node is configured."; |
| description | | description |
| "Install remote nexthop in extended community and opaque format"; | | "Install remote nexthop in extended community and opaque format"; |
| container only { | | container only { |
| presence "Indicates a only node is configured."; | | presence "Indicates a only node is configured."; |
| description | | description |
| "Install remote nexthop in extended community format only"; | | "Install remote nexthop in extended community format only"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf table-policy { | | leaf table-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Configure policy for installation of routes to RIB"; | | "Configure policy for installation of routes to RIB"; |
| } | | } |
| container segment-routing { | | container segment-routing { |
| description | | description |
| "Segment Routing"; | | "Segment Routing"; |
| container srv6 { | | container srv6 { |
| presence "Indicates a srv6 node is configured."; | | presence "Indicates a srv6 node is configured."; |
| description | | description |
| "Specify SRv6 configurations"; | | "Specify SRv6 configurations"; |
| container alloc { | | container alloc { |
| description | | description |
| "SID Allocation"; | | "SID Allocation"; |
| container mode { | | container mode { |
| description | | description |
| "SID Allocation mode"; | | "SID Allocation mode"; |
| container per-ce { | | container per-ce { |
| must "not(../per-vrf-46 or ../per-vrf)"; | | must "not(../per-vrf-46 or ../per-vrf)"; |
| presence "Indicates a per-ce node is configured."; | | presence "Indicates a per-ce node is configured."; |
| description | | description |
| "Set per CE SRv6 SID mode"; | | "Set per CE SRv6 SID mode"; |
| } | | } |
| container per-vrf { | | container per-vrf { |
| must "not(../per-ce or ../per-vrf-46)"; | | must "not(../per-ce or ../per-vrf-46)"; |
| presence "Indicates a per-vrf node is configured."; | | presence "Indicates a per-vrf node is configured."; |
| description | | description |
| "Set per VRF SRv6 SID mode"; | | "Set per VRF SRv6 SID mode"; |
| } | | } |
| container per-vrf-46 { | | container per-vrf-46 { |
| must "not(../per-ce or ../per-vrf)"; | | must "not(../per-ce or ../per-vrf)"; |
| presence "Indicates a per-vrf-46 node is configured."; | | presence "Indicates a per-vrf-46 node is configured."; |
| description | | description |
| "Set per VRF 46 SRv6 SID mode"; | | "Set per VRF 46 SRv6 SID mode"; |
| } | | } |
| } | | } |
| } | | } |
| leaf locator { | | leaf locator { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "locator name"; | | "locator name"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify locator"; | | "Specify locator"; |
| } | | } |
| container usid { | | container usid { |
| description | | description |
| "Micro-SID configuration"; | | "Micro-SID configuration"; |
| container allocation { | | container allocation { |
| description | | description |
| "Allocation mode"; | | "Allocation mode"; |
| container wide-local-id-block { | | container wide-local-id-block { |
| presence "Indicates a wide-local-id-block node is configured."; | | presence "Indicates a wide-local-id-block node is configured."; |
| description | | description |
| "Wide LIB allocation"; | | "Wide LIB allocation"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container domain-distinguisher { | | container domain-distinguisher { |
| when "../af-name = 'link-state-link-state'"; | | when "../af-name = 'link-state-link-state'"; |
| presence "Indicates a domain-distinguisher node is configured."; | | presence "Indicates a domain-distinguisher node is configured."; |
| description | | description |
| "Globally unique identifier for IGP domain"; | | "Globally unique identifier for IGP domain"; |
| leaf domain-distinguisher-id { | | leaf domain-distinguisher-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "4 octet ASN"; | | "4 octet ASN"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Globally unique identifier for IGP domain"; | | "Globally unique identifier for IGP domain"; |
| } | | } |
| leaf ip-address { | | leaf ip-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| mandatory true; | | mandatory true; |
| description | | description |
| "configure this node"; | | "configure this node"; |
| } | | } |
| } | | } |
| container distance { | | container distance { |
| when "../af-name != 'vpn4-unicast' and ../af-name != 'vpnv4-multicast' and ../af-name != 'vpnv6-unicast' and ../af-name != 'vpnv6-multicast' and ../af-name != 'vpnv4-mdt' and ../af-name != 'l2vpn-vpls-vpws' and ../af-name != 'l2vpn-evpn' and ../af-name != 'l2vpn-mspw' and ../af-name != 'ipv4-mvpn' and ../af-name != 'ipv6-mvpn' and ../af-name != 'ipv4-tunnel' and ../af-name != 'ipv4-rt-filter' and ../af-name != 'link-state-link-state' and ../af-name != 'ipv4-flowspec' and ../af-name != 'ipv6-flowspec' and ../af-name != 'vpnv4-flowspec' and ../af-name != 'vpnv6-flowspec' and ../af-name != 'ipv4-sr-policy' and ../af-name != 'ipv6-sr-policy'"; | | when "../af-name != 'vpn4-unicast' and ../af-name != 'vpnv4-multicast' and ../af-name != 'vpnv6-unicast' and ../af-name != 'vpnv6-multicast' and ../af-name != 'vpnv4-mdt' and ../af-name != 'l2vpn-vpls-vpws' and ../af-name != 'l2vpn-evpn' and ../af-name != 'l2vpn-mspw' and ../af-name != 'ipv4-mvpn' and ../af-name != 'ipv6-mvpn' and ../af-name != 'ipv4-tunnel' and ../af-name != 'ipv4-rt-filter' and ../af-name != 'link-state-link-state' and ../af-name != 'ipv4-flowspec' and ../af-name != 'ipv6-flowspec' and ../af-name != 'vpnv4-flowspec' and ../af-name != 'vpnv6-flowspec' and ../af-name != 'ipv4-sr-policy' and ../af-name != 'ipv6-sr-policy'"; |
| description | | description |
| "Define an administrative distance"; | | "Define an administrative distance"; |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "BGP distance"; | | "BGP distance"; |
| leaf external-routes { | | leaf external-routes { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Distance for routes external to the AS"; | | "Distance for routes external to the AS"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "BGP distance"; | | "BGP distance"; |
| } | | } |
| leaf internal-routes { | | leaf internal-routes { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Distance for routes internal to the AS"; | | "Distance for routes internal to the AS"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Distance for routes internal to the AS"; | | "Distance for routes internal to the AS"; |
| } | | } |
| leaf local-routes { | | leaf local-routes { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Distance for local routes"; | | "Distance for local routes"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Distance for local routes"; | | "Distance for local routes"; |
| } | | } |
| } | | } |
| } | | } |
| container optimal-route-reflection { | | container optimal-route-reflection { |
| when "../af-name != 'vpn4-unicast' and ../af-name != 'vpnv4-multicast' and ../af-name != 'vpnv6-unicast' and ../af-name != 'vpnv6-multicast' and ../af-name != 'vpnv4-mdt' and ../af-name != 'l2vpn-vpls-vpws' and ../af-name != 'l2vpn-evpn' and ../af-name != 'l2vpn-mspw' and ../af-name != 'ipv4-mvpn' and ../af-name != 'ipv6-mvpn' and ../af-name != 'ipv4-tunnel' and ../af-name != 'ipv4-rt-filter' and ../af-name != 'link-state-link-state' and ../af-name != 'ipv4-flowspec' and ../af-name != 'ipv6-flowspec' and ../af-name != 'vpnv4-flowspec' and ../af-name != 'vpnv6-flowspec' and ../af-name != 'ipv4-sr-policy' and ../af-name != 'ipv6-sr-policy'"; | | when "../af-name != 'vpn4-unicast' and ../af-name != 'vpnv4-multicast' and ../af-name != 'vpnv6-unicast' and ../af-name != 'vpnv6-multicast' and ../af-name != 'vpnv4-mdt' and ../af-name != 'l2vpn-vpls-vpws' and ../af-name != 'l2vpn-evpn' and ../af-name != 'l2vpn-mspw' and ../af-name != 'ipv4-mvpn' and ../af-name != 'ipv6-mvpn' and ../af-name != 'ipv4-tunnel' and ../af-name != 'ipv4-rt-filter' and ../af-name != 'link-state-link-state' and ../af-name != 'ipv4-flowspec' and ../af-name != 'ipv6-flowspec' and ../af-name != 'vpnv4-flowspec' and ../af-name != 'vpnv6-flowspec' and ../af-name != 'ipv4-sr-policy' and ../af-name != 'ipv6-sr-policy'"; |
| description | | description |
| "Configure optimal-route-reflection group"; | | "Configure optimal-route-reflection group"; |
| list orr-group { | | list orr-group { |
| key "orr-group-name"; | | key "orr-group-name"; |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| leaf orr-group-name { | | leaf orr-group-name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| leaf primary-address { | | leaf primary-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| mandatory true; | | mandatory true; |
| description | | description |
| "IPv4 primary address"; | | "IPv4 primary address"; |
| } | | } |
| leaf secondary-address { | | leaf secondary-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IPv4 secondary address"; | | "IPv4 secondary address"; |
| } | | } |
| leaf tertiary-address { | | leaf tertiary-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| must "../secondary-address"; | | must "../secondary-address"; |
| description | | description |
| "IPv4 tertiary address"; | | "IPv4 tertiary address"; |
| } | | } |
| } | | } |
| list apply { | | list apply { |
| key "orr-group-name"; | | key "orr-group-name"; |
| description | | description |
| "Apply optimal-route-reflection group"; | | "Apply optimal-route-reflection group"; |
| leaf orr-group-name { | | leaf orr-group-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| container fallback-default-bestpath { | | container fallback-default-bestpath { |
| presence "Indicates an ebgp node is configured."; | | presence "Indicates an ebgp node is configured."; |
| description | | description |
| "In case none of the paths are accessible in | | "In case none of the paths are accessible in |
| an ORR table, fallback to default table bestpath | | an ORR table, fallback to default table bestpath |
| as ORR bestpath"; | | as ORR bestpath"; |
| } | | } |
| } | | } |
| container maximum-paths { | | container maximum-paths { |
| when "../af-name != 'vpn4-unicast' and ../af-name != 'vpnv4-multicast' and ../af-name != 'vpnv6-unicast' and ../af-name != 'vpnv6-multicast' and ../af-name != 'vpnv4-mdt' and ../af-name != 'l2vpn-vpls-vpws' and ../af-name != 'l2vpn-evpn' and ../af-name != 'l2vpn-mspw' and ../af-name != 'ipv4-mvpn' and ../af-name != 'ipv6-mvpn' and ../af-name != 'ipv4-tunnel' and ../af-name != 'ipv4-rt-filter' and ../af-name != 'link-state-link-state' and ../af-name != 'ipv4-flowspec' and ../af-name != 'ipv6-flowspec' and ../af-name != 'vpnv4-flowspec' and ../af-name != 'vpnv6-flowspec' and ../af-name != 'ipv4-sr-policy' and ../af-name != 'ipv6-sr-policy'"; | | when "../af-name != 'vpn4-unicast' and ../af-name != 'vpnv4-multicast' and ../af-name != 'vpnv6-unicast' and ../af-name != 'vpnv6-multicast' and ../af-name != 'vpnv4-mdt' and ../af-name != 'l2vpn-vpls-vpws' and ../af-name != 'l2vpn-evpn' and ../af-name != 'l2vpn-mspw' and ../af-name != 'ipv4-mvpn' and ../af-name != 'ipv6-mvpn' and ../af-name != 'ipv4-tunnel' and ../af-name != 'ipv4-rt-filter' and ../af-name != 'link-state-link-state' and ../af-name != 'ipv4-flowspec' and ../af-name != 'ipv6-flowspec' and ../af-name != 'vpnv4-flowspec' and ../af-name != 'vpnv6-flowspec' and ../af-name != 'ipv4-sr-policy' and ../af-name != 'ipv6-sr-policy'"; |
| description | | description |
| "Forward packets over multiple paths"; | | "Forward packets over multiple paths"; |
| container ebgp { | | container ebgp { |
| presence "Indicates an ebgp node is configured."; | | presence "Indicates an ebgp node is configured."; |
| description | | description |
| "eBGP-multipath"; | | "eBGP-multipath"; |
| leaf multipath { | | leaf multipath { |
| type uint32 { | | type uint32 { |
| range "2..1024" { | | range "2..1024" { |
| description | | description |
| "Number of paths (limit includes backup path)"; | | "Number of paths (limit includes backup path)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "eBGP-multipath"; | | "eBGP-multipath"; |
| } | | } |
| container selective { | | container selective { |
| presence "Indicates a selective node is configured."; | | presence "Indicates a selective node is configured."; |
| description | | description |
| "Allow multipaths only from marked neighbors"; | | "Allow multipaths only from marked neighbors"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route-policy to select multipath"; | | "Route-policy to select multipath"; |
| } | | } |
| } | | } |
| container eibgp { | | container eibgp { |
| presence "Indicates an eibgp node is configured."; | | presence "Indicates an eibgp node is configured."; |
| description | | description |
| "eiBGP-multipath"; | | "eiBGP-multipath"; |
| leaf multipath { | | leaf multipath { |
| type uint32 { | | type uint32 { |
| range "2..1024" { | | range "2..1024" { |
| description | | description |
| "Number of paths (limit includes backup path)"; | | "Number of paths (limit includes backup path)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "eiBGP-multipath"; | | "eiBGP-multipath"; |
| } | | } |
| container selective { | | container selective { |
| presence "Indicates a selective node is configured."; | | presence "Indicates a selective node is configured."; |
| description | | description |
| "Allow multipaths only from marked neighbors"; | | "Allow multipaths only from marked neighbors"; |
| } | | } |
| container equal-cost { | | container equal-cost { |
| presence "Indicates a equal-cost node is configured."; | | presence "Indicates a equal-cost node is configured."; |
| description | | description |
| "Preserve equal nexthop IGP metric criteria for multipath eligiblity between same path-types (iBGP or eBGP)"; | | "Preserve equal nexthop IGP metric criteria for multipath eligiblity between same path-types (iBGP or eBGP)"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route-policy to select multipath"; | | "Route-policy to select multipath"; |
| } | | } |
| } | | } |
| container ibgp { | | container ibgp { |
| presence "Indicates an ibgp node is configured."; | | presence "Indicates an ibgp node is configured."; |
| description | | description |
| "iBGP-multipath"; | | "iBGP-multipath"; |
| leaf multipath { | | leaf multipath { |
| type uint32 { | | type uint32 { |
| range "2..1024" { | | range "2..1024" { |
| description | | description |
| "Number of paths (limit includes backup path)"; | | "Number of paths (limit includes backup path)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "iBGP-multipath"; | | "iBGP-multipath"; |
| } | | } |
| container selective { | | container selective { |
| presence "Indicates a selective node is configured."; | | presence "Indicates a selective node is configured."; |
| description | | description |
| "Allow multipaths only from marked neighbors"; | | "Allow multipaths only from marked neighbors"; |
| } | | } |
| container unequal-cost { | | container unequal-cost { |
| presence "Indicates an unequal-cost node is configured."; | | presence "Indicates an unequal-cost node is configured."; |
| description | | description |
| "Allow multipaths to have different BGP nexthop IGP metrics "; | | "Allow multipaths to have different BGP nexthop IGP metrics "; |
| container deterministic { | | container deterministic { |
| presence "Indicates a deterministic node is configured."; | | presence "Indicates a deterministic node is configured."; |
| description | | description |
| "Deterministic Multipath selection primarily on IGP metric order"; | | "Deterministic Multipath selection primarily on IGP metric order"; |
| } | | } |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route-policy to select multipath"; | | "Route-policy to select multipath"; |
| } | | } |
| } | | } |
| container unique-nexthop-check-disable { | | container unique-nexthop-check-disable { |
| presence "Indicates a unique-nexthop-check-disable node is configured."; | | presence "Indicates a unique-nexthop-check-disable node is configured."; |
| description | | description |
| "Disable multipath unique nexthop check"; | | "Disable multipath unique nexthop check"; |
| } | | } |
| } | | } |
| container import { | | container import { |
| when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast'"; | | when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast'"; |
| description | | description |
| "Configure import rules"; | | "Configure import rules"; |
| container from { | | container from { |
| description | | description |
| "Import routes from source"; | | "Import routes from source"; |
| container bridge-domain { | | container bridge-domain { |
| presence "Indicates a bridge-domain node is configured."; | | presence "Indicates a bridge-domain node is configured."; |
| description | | description |
| "Import EVPN IP hosts from bridge-domain"; | | "Import EVPN IP hosts from bridge-domain"; |
| } | | } |
| } | | } |
| } | | } |
| container additional-paths { | | container additional-paths { |
| when "../af-name != 'ipv4-multicast' and ../af-name != 'ipv6-multicast' and ../af-name != 'ipv4-mdt' and ../af-name != 'l2vpn-vpls-vpws' and ../af-name != 'ipv4-tunnel'"; | | when "../af-name != 'ipv4-multicast' and ../af-name != 'ipv6-multicast' and ../af-name != 'ipv4-mdt' and ../af-name != 'l2vpn-vpls-vpws' and ../af-name != 'ipv4-tunnel'"; |
| description | | description |
| "Additional paths configuration"; | | "Additional paths configuration"; |
| container send { | | container send { |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Additional paths Send capability"; | | "Additional paths Send capability"; |
| } | | } |
| container receive { | | container receive { |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Additional paths Receive capability"; | | "Additional paths Receive capability"; |
| } | | } |
| container selection { | | container selection { |
| description | | description |
| "Additional paths selection"; | | "Additional paths selection"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route-policy for additional paths selection"; | | "Route-policy for additional paths selection"; |
| } | | } |
| } | | } |
| container advertise-limit { | | container advertise-limit { |
| description | | description |
| "Limit the number of paths to be advertised (default 32)"; | | "Limit the number of paths to be advertised (default 32)"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertise-limit for this vrf address-family"; | | "Disable advertise-limit for this vrf address-family"; |
| } | | } |
| leaf advertise-path-limit-value { | | leaf advertise-path-limit-value { |
| type uint32 { | | type uint32 { |
| range "33..96" { | | range "33..96" { |
| description | | description |
| "Advertise path limit value"; | | "Advertise path limit value"; |
| } | | } |
| } | | } |
| description | | description |
| "Advertise path limit value"; | | "Advertise path limit value"; |
| } | | } |
| } | | } |
| } | | } |
| container permanent-network { | | container permanent-network { |
| description | | description |
| "Permanent network configuration"; | | "Permanent network configuration"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy to read the prefixes from"; | | "Route policy to read the prefixes from"; |
| } | | } |
| } | | } |
| container advertise { | | container advertise { |
| description | | description |
| "Advertise BGP path"; | | "Advertise BGP path"; |
| container best-external { | | container best-external { |
| presence "Indicates a best-external node is configured."; | | presence "Indicates a best-external node is configured."; |
| description | | description |
| "Advertise best-external path"; | | "Advertise best-external path"; |
| container labeled-unicast { | | container labeled-unicast { |
| must "not(../disable)"; | | must "not(../disable)"; |
| presence "Indicates a labeled-unicast node is configured."; | | presence "Indicates a labeled-unicast node is configured."; |
| description | | description |
| "Limit best-external to Labeled-Unicast address family"; | | "Limit best-external to Labeled-Unicast address family"; |
| } | | } |
| container disable { | | container disable { |
| must "not(../labeled-unicast)"; | | must "not(../labeled-unicast)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise best-external path"; | | "Do not advertise best-external path"; |
| } | | } |
| } | | } |
| container local-labeled-route { | | container local-labeled-route { |
| when "../../af-name = 'ipv4-unicast' or ../../af-name = 'ipv6-unicast'"; | | when "../../af-name = 'ipv4-unicast' or ../../af-name = 'ipv6-unicast'"; |
| description | | description |
| "Advertisement of routes with local-label"; | | "Advertisement of routes with local-label"; |
| container safi-unicast { | | container safi-unicast { |
| description | | description |
| "Advertisement of routes with local-label via Unicast SAFI"; | | "Advertisement of routes with local-label via Unicast SAFI"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise routes with local-label via Unicast SAFI"; | | "Do not advertise routes with local-label via Unicast SAFI"; |
| } | | } |
| } | | } |
| } | | } |
| container epe-bgp { | | container epe-bgp { |
| description | | description |
| "Advertisement of bgp epe via as label Unicast"; | | "Advertisement of bgp epe via as label Unicast"; |
| container labeled-unicast { | | container labeled-unicast { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Limit epe-bgplu to Labeled-Unicast address family"; | | "Limit epe-bgplu to Labeled-Unicast address family"; |
| } | | } |
| } | | } |
| } | | } |
| container nexthop { | | container nexthop { |
| description | | description |
| "Nexthop"; | | "Nexthop"; |
| container resolution { | | container resolution { |
| description | | description |
| "Nexthop resolution"; | | "Nexthop resolution"; |
| container prefix-length { | | container prefix-length { |
| description | | description |
| "Nexthop resolution prefix-length"; | | "Nexthop resolution prefix-length"; |
| leaf minimum { | | leaf minimum { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0..32" { | | range "0..32" { |
| description | | description |
| "Prefix-length value"; | | "Prefix-length value"; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "0..128" { | | range "0..128" { |
| description | | description |
| "Prefix-length value"; | | "Prefix-length value"; |
| } | | } |
| } | | } |
| } | | } |
| description | | description |
| "Set minimum prefix-length for nexthop resolution"; | | "Set minimum prefix-length for nexthop resolution"; |
| } | | } |
| leaf ipv6 { | | leaf ipv6 { |
| type uint32 { | | type uint32 { |
| range "0..128" { | | range "0..128" { |
| description | | description |
| "IPv6 Prefix-length value"; | | "IPv6 Prefix-length value"; |
| } | | } |
| } | | } |
| description | | description |
| "IPv6 Prefix-length value"; | | "IPv6 Prefix-length value"; |
| } | | } |
| } | | } |
| } | | } |
| container trigger-delay { | | container trigger-delay { |
| description | | description |
| "Processing trigger delay"; | | "Processing trigger delay"; |
| leaf critical { | | leaf critical { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Delay in milliseconds"; | | "Delay in milliseconds"; |
| } | | } |
| } | | } |
| description | | description |
| "For critical notification"; | | "For critical notification"; |
| } | | } |
| leaf non-critical { | | leaf non-critical { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Delay in milliseconds"; | | "Delay in milliseconds"; |
| } | | } |
| } | | } |
| description | | description |
| "For non-critical notification"; | | "For non-critical notification"; |
| } | | } |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Policy to filter out nexthop notification"; | | "Policy to filter out nexthop notification"; |
| } | | } |
| } | | } |
| container networks { | | container networks { |
| description | | description |
| "Specify a network to announce via BGP"; | | "Specify a network to announce via BGP"; |
| list network { | | list network { |
| key "address masklength"; | | key "address masklength"; |
| description | | description |
| "IPv6 network and mask or masklength"; | | "IPv6 network and mask or masklength"; |
| leaf address { | | leaf address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IPv6 network and mask or masklength"; | | "IPv6 network and mask or masklength"; |
| } | | } |
| leaf masklength { | | leaf masklength { |
| type uint16 { | | type uint16 { |
| range "0..128"; | | range "0..128"; |
| } | | } |
| description | | description |
| "Network in prefix/length format (prefix part)"; | | "Network in prefix/length format (prefix part)"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route-policy to modify the attributes"; | | "Route-policy to modify the attributes"; |
| } | | } |
| container backdoor { | | container backdoor { |
| presence "Indicates a backdoor node is configured."; | | presence "Indicates a backdoor node is configured."; |
| description | | description |
| "Specify a BGP backdoor route"; | | "Specify a BGP backdoor route"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a backdoor node is configured."; | | presence "Indicates a backdoor node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| } | | } |
| container aggregate-addresses { | | container aggregate-addresses { |
| description | | description |
| "Configure BGP aggregate entries"; | | "Configure BGP aggregate entries"; |
| list aggregate-address { | | list aggregate-address { |
| key "address masklength"; | | key "address masklength"; |
| description | | description |
| "IPv6 Aggregate address and mask or masklength"; | | "IPv6 Aggregate address and mask or masklength"; |
| leaf address { | | leaf address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IPv6 Aggregate address and mask or masklength"; | | "IPv6 Aggregate address and mask or masklength"; |
| } | | } |
| leaf masklength { | | leaf masklength { |
| type uint16 { | | type uint16 { |
| range "0..128"; | | range "0..128"; |
| } | | } |
| description | | description |
| "Network in prefix/length format (prefix part)"; | | "Network in prefix/length format (prefix part)"; |
| } | | } |
| container as-set { | | container as-set { |
| presence "Indicates a as-set node is configured."; | | presence "Indicates a as-set node is configured."; |
| description | | description |
| "Generate AS set path information"; | | "Generate AS set path information"; |
| } | | } |
| container as-confed-set { | | container as-confed-set { |
| presence "Indicates a as-confed-set node is configured."; | | presence "Indicates a as-confed-set node is configured."; |
| description | | description |
| "Generate AS confed set path information"; | | "Generate AS confed set path information"; |
| } | | } |
| container summary-only { | | container summary-only { |
| presence "Indicates a summary-only node is configured."; | | presence "Indicates a summary-only node is configured."; |
| description | | description |
| "Filter more specific routes from updates"; | | "Filter more specific routes from updates"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Policy to condition advertisement, suppression, and attributes"; | | "Policy to condition advertisement, suppression, and attributes"; |
| } | | } |
| leaf description { | | leaf description { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Description string"; | | "Description string"; |
| } | | } |
| } | | } |
| description | | description |
| "Description to the aggregate address configuration"; | | "Description to the aggregate address configuration"; |
| } | | } |
| leaf set-tag { | | leaf set-tag { |
| type uint32 { | | type uint32 { |
| range "1..4294967295"; | | range "1..4294967295"; |
| } | | } |
| description | | description |
| "IGP tag value for the route"; | | "IGP tag value for the route"; |
| } | | } |
| } | | } |
| } | | } |
| container redistribute { | | container redistribute { |
| when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv6-multicast'"; | | when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv6-multicast'"; |
| description | | description |
| "Redistribute information from another routing protocol"; | | "Redistribute information from another routing protocol"; |
| list ospf { | | list ospf { |
| key "router-tag"; | | key "router-tag"; |
| description | | description |
| "Open Shortest Path First (OSPF or OSPFv3)"; | | "Open Shortest Path First (OSPF or OSPFv3)"; |
| leaf router-tag { | | leaf router-tag { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "OSPF router tag"; | | "OSPF router tag"; |
| } | | } |
| } | | } |
| description | | description |
| "Open Shortest Path First (OSPF)"; | | "Open Shortest Path First (OSPF)"; |
| } | | } |
| container match { | | container match { |
| presence "Indicates a match node is configured."; | | presence "Indicates a match node is configured."; |
| description | | description |
| "Redistribution of OSPF routes"; | | "Redistribution of OSPF routes"; |
| container internal { | | container internal { |
| presence "Indicates a internal node is configured."; | | presence "Indicates a internal node is configured."; |
| description | | description |
| "Redistribute OSPF internal routes"; | | "Redistribute OSPF internal routes"; |
| container external { | | container external { |
| presence "Indicates a external node is configured."; | | presence "Indicates a external node is configured."; |
| description | | description |
| "Redistribute OSPF external routes"; | | "Redistribute OSPF external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute external type 1 routes"; | | "Redistribute external type 1 routes"; |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute external type 2 routes"; | | "Redistribute external type 2 routes"; |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container external { | | container external { |
| presence "Indicates a external node is configured."; | | presence "Indicates a external node is configured."; |
| description | | description |
| "Redistribute OSPF external routes"; | | "Redistribute OSPF external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute external type 1 routes"; | | "Redistribute external type 1 routes"; |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute external type 2 routes"; | | "Redistribute external type 2 routes"; |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| } | | } |
| list eigrp { | | list eigrp { |
| key "instance-name"; | | key "instance-name"; |
| description | | description |
| "Enhanced Interior Gateway Routing Protocol (EIGRP)"; | | "Enhanced Interior Gateway Routing Protocol (EIGRP)"; |
| leaf instance-name { | | leaf instance-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "EIGRP instance name"; | | "EIGRP instance name"; |
| } | | } |
| } | | } |
| description | | description |
| "Enhanced Interior Gateway Routing Protocol (EIGRP)"; | | "Enhanced Interior Gateway Routing Protocol (EIGRP)"; |
| } | | } |
| container match { | | container match { |
| description | | description |
| "EIGRP route type for redistribution"; | | "EIGRP route type for redistribution"; |
| container internal { | | container internal { |
| presence "Indicates a internal node is configured."; | | presence "Indicates a internal node is configured."; |
| description | | description |
| "Redistribute EIGRP internal routes"; | | "Redistribute EIGRP internal routes"; |
| container external { | | container external { |
| presence "Indicates a external node is configured."; | | presence "Indicates a external node is configured."; |
| description | | description |
| "Redistribute EIGRP external routes"; | | "Redistribute EIGRP external routes"; |
| } | | } |
| } | | } |
| container external { | | container external { |
| presence "Indicates a external node is configured."; | | presence "Indicates a external node is configured."; |
| description | | description |
| "Redistribute EIGRP external routes"; | | "Redistribute EIGRP external routes"; |
| } | | } |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| } | | } |
| list isis { | | list isis { |
| key "instance-name"; | | key "instance-name"; |
| description | | description |
| "ISO IS-IS"; | | "ISO IS-IS"; |
| leaf instance-name { | | leaf instance-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "IS-IS instance name"; | | "IS-IS instance name"; |
| } | | } |
| } | | } |
| description | | description |
| "ISO IS-IS"; | | "ISO IS-IS"; |
| } | | } |
| container level { | | container level { |
| description | | description |
| "Redistribute routes from the specified ISIS levels"; | | "Redistribute routes from the specified ISIS levels"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute ISIS level 1 routes"; | | "Redistribute ISIS level 1 routes"; |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute ISIS level 2 ISIS routes"; | | "Redistribute ISIS level 2 ISIS routes"; |
| container one-inter-area { | | container one-inter-area { |
| presence "Indicates a one-inter-area node is configured."; | | presence "Indicates a one-inter-area node is configured."; |
| description | | description |
| "Redistribute ISIS level 1 inter-area routes"; | | "Redistribute ISIS level 1 inter-area routes"; |
| } | | } |
| } | | } |
| container one-inter-area { | | container one-inter-area { |
| presence "Indicates a one-inter-area node is configured."; | | presence "Indicates a one-inter-area node is configured."; |
| description | | description |
| "Redistribute ISIS level 1 inter-area routes"; | | "Redistribute ISIS level 1 inter-area routes"; |
| } | | } |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute ISIS level 2 ISIS routes"; | | "Redistribute ISIS level 2 ISIS routes"; |
| container one-inter-area { | | container one-inter-area { |
| presence "Indicates a one-inter-area node is configured."; | | presence "Indicates a one-inter-area node is configured."; |
| description | | description |
| "Redistribute ISIS level 1 inter-area routes"; | | "Redistribute ISIS level 1 inter-area routes"; |
| } | | } |
| } | | } |
| container one-inter-area { | | container one-inter-area { |
| presence "Indicates a one-inter-area node is configured."; | | presence "Indicates a one-inter-area node is configured."; |
| description | | description |
| "Redistribute ISIS level 1 inter-area routes"; | | "Redistribute ISIS level 1 inter-area routes"; |
| } | | } |
| } | | } |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| list application { | | list application { |
| key "application-name"; | | key "application-name"; |
| description | | description |
| "OnePK application routes"; | | "OnePK application routes"; |
| leaf application-name { | | leaf application-name { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "OnePK application name"; | | "OnePK application name"; |
| } | | } |
| } | | } |
| description | | description |
| "OnePK application name"; | | "OnePK application name"; |
| } | | } |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| container connected { | | container connected { |
| presence "Indicates a connected node is configured."; | | presence "Indicates a connected node is configured."; |
| description | | description |
| "Connected routes"; | | "Connected routes"; |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| container lisp { | | container lisp { |
| presence "Indicates a lisp node is configured."; | | presence "Indicates a lisp node is configured."; |
| description | | description |
| "Locator/ID Separation Protocol (LISP)"; | | "Locator/ID Separation Protocol (LISP)"; |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| container mobile { | | container mobile { |
| presence "Indicates a mobile node is configured."; | | presence "Indicates a mobile node is configured."; |
| description | | description |
| "Mobile routes"; | | "Mobile routes"; |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| container rip { | | container rip { |
| when "../../af-name = 'ipv4-unicast' or ../../af-name = 'ipv4-multicast'"; | | when "../../af-name = 'ipv4-unicast' or ../../af-name = 'ipv4-multicast'"; |
| presence "Indicates a rip node is configured."; | | presence "Indicates a rip node is configured."; |
| description | | description |
| "Routing Information Protocol (RIP)"; | | "Routing Information Protocol (RIP)"; |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| container static { | | container static { |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Static routes"; | | "Static routes"; |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| container subscriber { | | container subscriber { |
| presence "Indicates a lisp node is configured."; | | presence "Indicates a lisp node is configured."; |
| description | | description |
| "subscriber routes"; | | "subscriber routes"; |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| } | | } |
| leaf table-policy { | | leaf table-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Configure policy for installation of routes to RIB"; | | "Configure policy for installation of routes to RIB"; |
| } | | } |
| container retain { | | container retain { |
| description | | description |
| "Accept/Retain specified bgp parameters"; | | "Accept/Retain specified bgp parameters"; |
| leaf local-label { | | leaf local-label { |
| when "../../af-name = 'ipv4-unicast' or ../../af-name = 'vpnv4-unicast' or ../../af-name = 'vpnv4-multicast' or ../../af-name = 'vpnv6-unicast' or ../../af-name = 'vpnv6-multicast' or ../../af-name = 'ipv6-unicast'"; | | when "../../af-name = 'ipv4-unicast' or ../../af-name = 'vpnv4-unicast' or ../../af-name = 'vpnv4-multicast' or ../../af-name = 'vpnv6-unicast' or ../../af-name = 'vpnv6-multicast' or ../../af-name = 'ipv6-unicast'"; |
| type uint32 { | | type uint32 { |
| range "3..60" { | | range "3..60" { |
| description | | description |
| "Label retention time in minutes"; | | "Label retention time in minutes"; |
| } | | } |
| } | | } |
| description | | description |
| "Delay the release of the local label as configured"; | | "Delay the release of the local label as configured"; |
| } | | } |
| container route-target { | | container route-target { |
| when "../../af-name = 'vpnv4-unicast' or ../../af-name = 'vpnv4-multicast' or ../../af-name = 'vpnv4-flowspec' or ../../af-name = 'vpnv6-unicast' or ../../af-name = 'vpnv6-multicast' or ../../af-name = 'vpnv6-flowspec' or ../../af-name = 'l2vpn-evpn' or ../../af-name = 'l2vpn-vpls-vpws' or ../../af-name = 'ipv4-mvpn' or ../../af-name = 'ipv6-mvpn'"; | | when "../../af-name = 'vpnv4-unicast' or ../../af-name = 'vpnv4-multicast' or ../../af-name = 'vpnv4-flowspec' or ../../af-name = 'vpnv6-unicast' or ../../af-name = 'vpnv6-multicast' or ../../af-name = 'vpnv6-flowspec' or ../../af-name = 'l2vpn-evpn' or ../../af-name = 'l2vpn-vpls-vpws' or ../../af-name = 'ipv4-mvpn' or ../../af-name = 'ipv6-mvpn'"; |
| description | | description |
| "Accept received updates with the specified route targets"; | | "Accept received updates with the specified route targets"; |
| container all { | | container all { |
| must "not(../route-policy)"; | | must "not(../route-policy)"; |
| presence "Indicates a all node is configured."; | | presence "Indicates a all node is configured."; |
| description | | description |
| "Accept received updates containing at least one route target"; | | "Accept received updates containing at least one route target"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| must "not(../all)"; | | must "not(../all)"; |
| description | | description |
| "Accept received updates accepted by the specified policy"; | | "Accept received updates accepted by the specified policy"; |
| } | | } |
| } | | } |
| } | | } |
| container allocate-label { | | container allocate-label { |
| description | | description |
| "Allocate label for selected prefixes"; | | "Allocate label for selected prefixes"; |
| container all { | | container all { |
| presence "Indicates a all node is configured."; | | presence "Indicates a all node is configured."; |
| description | | description |
| "Allocate labels for all prefixes"; | | "Allocate labels for all prefixes"; |
| container unlabeled-path { | | container unlabeled-path { |
| presence "Indicates a unlabeled-path node is configured."; | | presence "Indicates a unlabeled-path node is configured."; |
| description | | description |
| "Allocate label for unlabeled paths too"; | | "Allocate label for unlabeled paths too"; |
| } | | } |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Use a route policy to select prefixes for label allocation"; | | "Use a route policy to select prefixes for label allocation"; |
| } | | } |
| } | | } |
| container label { | | container label { |
| description | | description |
| "Label-related configuration"; | | "Label-related configuration"; |
| container mode { | | container mode { |
| description | | description |
| "Select label mode"; | | "Select label mode"; |
| container per-ce { | | container per-ce { |
| when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; | | when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; |
| must "not(../per-vrf or ../route-policy or ../per-vrf-46)"; | | must "not(../per-vrf or ../route-policy or ../per-vrf-46)"; |
| presence "Indicates a per-ce node is configured."; | | presence "Indicates a per-ce node is configured."; |
| description | | description |
| "Set per CE label mode"; | | "Set per CE label mode"; |
| } | | } |
| container per-vrf { | | container per-vrf { |
| when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; | | when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; |
| must "not(../per-ce or ../route-policy or ../per-vrf-46)"; | | must "not(../per-ce or ../route-policy or ../per-vrf-46)"; |
| presence "Indicates a per-vrf node is configured."; | | presence "Indicates a per-vrf node is configured."; |
| description | | description |
| "Set per VRF label mode"; | | "Set per VRF label mode"; |
| } | | } |
| container per-vrf-46 { | | container per-vrf-46 { |
| when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; | | when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; |
| must "not(../per-ce or ../route-policy or ../per-vrf)"; | | must "not(../per-ce or ../route-policy or ../per-vrf)"; |
| presence "Indicates a per-vrf-46 node is configured."; | | presence "Indicates a per-vrf-46 node is configured."; |
| description | | description |
| "Set per VRF IPv4/IPv6 label mode"; | | "Set per VRF IPv4/IPv6 label mode"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; | | when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| must "not(../per-ce or ../per-vrf or ../per-vrf-46)"; | | must "not(../per-ce or ../per-vrf or ../per-vrf-46)"; |
| description | | description |
| "Use a route policy to select prefixes for label allocation mode"; | | "Use a route policy to select prefixes for label allocation mode"; |
| } | | } |
| container per-nexthop-received-label { | | container per-nexthop-received-label { |
| when "../../../af-name = 'vpnv4-unicast' or ../../../af-name = 'vpnv6-unicast'"; | | when "../../../af-name = 'vpnv4-unicast' or ../../../af-name = 'vpnv6-unicast'"; |
| presence "Indicates a per-nexthop-received-label node is configured."; | | presence "Indicates a per-nexthop-received-label node is configured."; |
| description | | description |
| "Set label mode per nexthop and received label"; | | "Set label mode per nexthop and received label"; |
| container allocate-secondary-label { | | container allocate-secondary-label { |
| presence "Indicates a allocate-secondary-label node is configured."; | | presence "Indicates a allocate-secondary-label node is configured."; |
| description | | description |
| "Allocate secondary label to avoid label oscillation insymmetric PIC deployments"; | | "Allocate secondary label to avoid label oscillation insymmetric PIC deployments"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf table-version { | | leaf table-version { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..800" { | | length "1..800" { |
| description | | description |
| "Version number to be set (0 - 4611686018427387903)"; | | "Version number to be set (0 - 4611686018427387903)"; |
| } | | } |
| } | | } |
| description | | description |
| "Set BGP table version"; | | "Set BGP table version"; |
| } | | } |
| container rnh { | | container rnh { |
| description | | description |
| "Remote nexthop"; | | "Remote nexthop"; |
| container install { | | container install { |
| description | | description |
| "Install remote nexthop"; | | "Install remote nexthop"; |
| container extcomm { | | container extcomm { |
| presence "Indicates a extcomm node is configured."; | | presence "Indicates a extcomm node is configured."; |
| description | | description |
| "Install remote nexthop in extended community and opaque format"; | | "Install remote nexthop in extended community and opaque format"; |
| container only { | | container only { |
| presence "Indicates a only node is configured."; | | presence "Indicates a only node is configured."; |
| description | | description |
| "Install remote nexthop in extended community format only"; | | "Install remote nexthop in extended community format only"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container bgp { | | container bgp { |
| description | | description |
| "BGP Commands"; | | "BGP Commands"; |
| container client-to-client { | | container client-to-client { |
| description | | description |
| "Configure client to client route reflection"; | | "Configure client to client route reflection"; |
| container reflection { | | container reflection { |
| description | | description |
| "Reflection"; | | "Reflection"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable"; | | "Disable"; |
| } | | } |
| container cluster-id { | | container cluster-id { |
| description | | description |
| "ID of Cluster for which reflection is to be disabled"; | | "ID of Cluster for which reflection is to be disabled"; |
| container cluster-id-32bits { | | container cluster-id-32bits { |
| description | | description |
| "Route-Reflector Cluster-id as 32 bit quantity"; | | "Route-Reflector Cluster-id as 32 bit quantity"; |
| list cluster-id-32bit { | | list cluster-id-32bit { |
| key "cluster-id"; | | key "cluster-id"; |
| description | | description |
| "Route-Reflector Cluster-id as 32 bit quantity"; | | "Route-Reflector Cluster-id as 32 bit quantity"; |
| leaf cluster-id { | | leaf cluster-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Route-Reflector Cluster-id as 32 bit quantity"; | | "Route-Reflector Cluster-id as 32 bit quantity"; |
| } | | } |
| } | | } |
| description | | description |
| "Route-Reflector Cluster-id as 32 bit quantity"; | | "Route-Reflector Cluster-id as 32 bit quantity"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable"; | | "Disable"; |
| } | | } |
| } | | } |
| } | | } |
| container cluster-id-ip-addresses { | | container cluster-id-ip-addresses { |
| description | | description |
| "Route-Reflector Cluster-id in IP address format"; | | "Route-Reflector Cluster-id in IP address format"; |
| list cluster-id-ip-address { | | list cluster-id-ip-address { |
| key "ip-address"; | | key "ip-address"; |
| description | | description |
| "Route-Reflector Cluster-id in IP address format"; | | "Route-Reflector Cluster-id in IP address format"; |
| leaf ip-address { | | leaf ip-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "Route-Reflector Cluster-id in IP address format"; | | "Route-Reflector Cluster-id in IP address format"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable"; | | "Disable"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container dampening { | | container dampening { |
| presence "Indicates a dampening node is configured."; | | presence "Indicates a dampening node is configured."; |
| description | | description |
| "Enable route-flap dampening"; | | "Enable route-flap dampening"; |
| leaf half-life-time { | | leaf half-life-time { |
| type uint32 { | | type uint32 { |
| range "1..45" { | | range "1..45" { |
| description | | description |
| "Half-life time for the penalty"; | | "Half-life time for the penalty"; |
| } | | } |
| } | | } |
| must "not(../route-policy)"; | | must "not(../route-policy)"; |
| description | | description |
| "Half-life time for the penalty"; | | "Half-life time for the penalty"; |
| } | | } |
| leaf start-reusing-route { | | leaf start-reusing-route { |
| type uint32 { | | type uint32 { |
| range "1..20000" { | | range "1..20000" { |
| description | | description |
| "Value to start reusing a route"; | | "Value to start reusing a route"; |
| } | | } |
| } | | } |
| must "../half-life-time and ../start-suppressing-route"; | | must "../half-life-time and ../start-suppressing-route"; |
| description | | description |
| "Value to start reusing a route"; | | "Value to start reusing a route"; |
| } | | } |
| leaf start-suppressing-route { | | leaf start-suppressing-route { |
| type uint32 { | | type uint32 { |
| range "1..20000" { | | range "1..20000" { |
| description | | description |
| "Value to start suppressing a route"; | | "Value to start suppressing a route"; |
| } | | } |
| } | | } |
| must "../start-reusing-route and ../maximum-duration"; | | must "../start-reusing-route and ../maximum-duration"; |
| description | | description |
| "Value to start suppressing a route"; | | "Value to start suppressing a route"; |
| } | | } |
| leaf maximum-duration { | | leaf maximum-duration { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Maximum duration to suppress a stable route"; | | "Maximum duration to suppress a stable route"; |
| } | | } |
| } | | } |
| must "../start-suppressing-route"; | | must "../start-suppressing-route"; |
| description | | description |
| "Maximum duration to suppress a stable route"; | | "Maximum duration to suppress a stable route"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| must "not(../half-life-time)"; | | must "not(../half-life-time)"; |
| description | | description |
| "Route policy to specify criteria for dampening"; | | "Route policy to specify criteria for dampening"; |
| } | | } |
| } | | } |
| container attribute-download { | | container attribute-download { |
| presence "Indicates a attribute-download node is configured."; | | presence "Indicates a attribute-download node is configured."; |
| description | | description |
| "Configure attribute download for this address-family"; | | "Configure attribute download for this address-family"; |
| } | | } |
| container implicit-import { | | container implicit-import { |
| presence "Indicates a implicit-import node is configured."; | | presence "Indicates a implicit-import node is configured."; |
| description | | description |
| "Configure implicit import for this address-family"; | | "Configure implicit import for this address-family"; |
| } | | } |
| container import-delay { | | container import-delay { |
| presence "Indicates a import-delay node is configured."; | | presence "Indicates a import-delay node is configured."; |
| description | | description |
| "Specify delay for batching import processing"; | | "Specify delay for batching import processing"; |
| leaf delay-seconds { | | leaf delay-seconds { |
| type uint32 { | | type uint32 { |
| range "0..10" { | | range "0..10" { |
| description | | description |
| "Delay, seconds part"; | | "Delay, seconds part"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Specify delay for batching import processing"; | | "Specify delay for batching import processing"; |
| } | | } |
| leaf delay-milliseconds { | | leaf delay-milliseconds { |
| type uint32 { | | type uint32 { |
| range "0..999" { | | range "0..999" { |
| description | | description |
| "Delay, milliseconds part"; | | "Delay, milliseconds part"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Delay, milliseconds part"; | | "Delay, milliseconds part"; |
| } | | } |
| } | | } |
| container label-delay { | | container label-delay { |
| presence "Indicates a label-delay node is configured."; | | presence "Indicates a label-delay node is configured."; |
| description | | description |
| "Specify delay for batching label processing"; | | "Specify delay for batching label processing"; |
| leaf delay-seconds { | | leaf delay-seconds { |
| type uint32 { | | type uint32 { |
| range "0..10" { | | range "0..10" { |
| description | | description |
| "Delay, seconds part"; | | "Delay, seconds part"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Specify delay for batching label processing"; | | "Specify delay for batching label processing"; |
| } | | } |
| leaf delay-milliseconds { | | leaf delay-milliseconds { |
| type uint32 { | | type uint32 { |
| range "0..999" { | | range "0..999" { |
| description | | description |
| "Delay, milliseconds part"; | | "Delay, milliseconds part"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Delay, milliseconds part"; | | "Delay, milliseconds part"; |
| } | | } |
| } | | } |
| leaf scan-time { | | leaf scan-time { |
| type uint32 { | | type uint32 { |
| range "5..3600" { | | range "5..3600" { |
| description | | description |
| "Scanner interval (seconds)"; | | "Scanner interval (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure background scanner interval for this address-family"; | | "Configure background scanner interval for this address-family"; |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validation { | | container validation { |
| description | | description |
| "BGP origin-AS validation knobs"; | | "BGP origin-AS validation knobs"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable RPKI origin-AS validation"; | | "Disable RPKI origin-AS validation"; |
| } | | } |
| container enable { | | container enable { |
| presence "Indicates a enable node is configured."; | | presence "Indicates a enable node is configured."; |
| description | | description |
| "Enable RPKI origin-AS validation"; | | "Enable RPKI origin-AS validation"; |
| } | | } |
| container signal { | | container signal { |
| description | | description |
| "Signal origin-AS validity towards peers"; | | "Signal origin-AS validity towards peers"; |
| container ibgp { | | container ibgp { |
| presence "Indicates a ibgp node is configured."; | | presence "Indicates a ibgp node is configured."; |
| description | | description |
| "Signal origin-AS validity towards iBGP peers"; | | "Signal origin-AS validity towards iBGP peers"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container bestpath { | | container bestpath { |
| description | | description |
| "Change default route selection criteria"; | | "Change default route selection criteria"; |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container use { | | container use { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validity { | | container validity { |
| presence "Indicates a validity node is configured."; | | presence "Indicates a validity node is configured."; |
| description | | description |
| "BGP bestpath selection will use origin-AS validity"; | | "BGP bestpath selection will use origin-AS validity"; |
| } | | } |
| } | | } |
| container allow { | | container allow { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container invalid { | | container invalid { |
| presence "Indicates a invalid node is configured."; | | presence "Indicates a invalid node is configured."; |
| description | | description |
| "BGP bestpath selection will allow 'invalid' origin-AS"; | | "BGP bestpath selection will allow 'invalid' origin-AS"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container event { | | container event { |
| description | | description |
| "Policy for per-prefix tracing"; | | "Policy for per-prefix tracing"; |
| container prefix { | | container prefix { |
| description | | description |
| "Policy for per-prefix tracing"; | | "Policy for per-prefix tracing"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Policy for per-prefix tracing"; | | "Policy for per-prefix tracing"; |
| } | | } |
| } | | } |
| } | | } |
| container dynamic-med { | | container dynamic-med { |
| description | | description |
| "Dynamic MED Interval"; | | "Dynamic MED Interval"; |
| leaf interval { | | leaf interval { |
| type uint32 { | | type uint32 { |
| range "0..10" { | | range "0..10" { |
| description | | description |
| "Update generation delay in minutes"; | | "Update generation delay in minutes"; |
| } | | } |
| } | | } |
| description | | description |
| "Update generation delay (in minutes) after a MED change"; | | "Update generation delay (in minutes) after a MED change"; |
| } | | } |
| } | | } |
| container weight { | | container weight { |
| description | | description |
| "Define or modify weight"; | | "Define or modify weight"; |
| container reset-on-import { | | container reset-on-import { |
| presence "Indicates a reset-on-import node is configured."; | | presence "Indicates a reset-on-import node is configured."; |
| description | | description |
| "Reset weight of paths on import"; | | "Reset weight of paths on import"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not reset weight of paths on import"; | | "Do not reset weight of paths on import"; |
| } | | } |
| } | | } |
| } | | } |
| container update { | | container update { |
| description | | description |
| "BGP Update generation configuration"; | | "BGP Update generation configuration"; |
| container limit { | | container limit { |
| description | | description |
| "Upper bound on transient memory usage for update generation"; | | "Upper bound on transient memory usage for update generation"; |
| leaf address-family { | | leaf address-family { |
| type uint32 { | | type uint32 { |
| range "4..2048" { | | range "4..2048" { |
| description | | description |
| "Update limit in MegaBytes(MB); default is 256 MB"; | | "Update limit in MegaBytes(MB); default is 256 MB"; |
| } | | } |
| } | | } |
| description | | description |
| "Update limit for address-family"; | | "Update limit for address-family"; |
| } | | } |
| container sub-group { | | container sub-group { |
| description | | description |
| "Update limit for sub-groups"; | | "Update limit for sub-groups"; |
| leaf ebgp { | | leaf ebgp { |
| type uint32 { | | type uint32 { |
| range "1..512" { | | range "1..512" { |
| description | | description |
| "Update limit in MegaBytes(MB); default is 32 MB"; | | "Update limit in MegaBytes(MB); default is 32 MB"; |
| } | | } |
| } | | } |
| description | | description |
| "Update limit for eBGP sub-groups"; | | "Update limit for eBGP sub-groups"; |
| } | | } |
| leaf ibgp { | | leaf ibgp { |
| type uint32 { | | type uint32 { |
| range "1..512" { | | range "1..512" { |
| description | | description |
| "Update limit in MegaBytes(MB); default is 32 MB"; | | "Update limit in MegaBytes(MB); default is 32 MB"; |
| } | | } |
| } | | } |
| description | | description |
| "Update limit for iBGP sub-groups"; | | "Update limit for iBGP sub-groups"; |
| } | | } |
| } | | } |
| } | | } |
| container wait-install { | | container wait-install { |
| presence "Indicates a wait-install node is configured."; | | presence "Indicates a wait-install node is configured."; |
| description | | description |
| "Wait for route install"; | | "Wait for route install"; |
| container delay { | | container delay { |
| description | | description |
| "Configure a delay"; | | "Configure a delay"; |
| leaf startup { | | leaf startup { |
| type uint32 { | | type uint32 { |
| range "1..600" { | | range "1..600" { |
| description | | description |
| "Delay in seconds"; | | "Delay in seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure a delay for the startup phase"; | | "Configure a delay for the startup phase"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container as-path-loopcheck { | | container as-path-loopcheck { |
| description | | description |
| "Configure AS Path loop checking"; | | "Configure AS Path loop checking"; |
| container out { | | container out { |
| description | | description |
| "For outbound updates"; | | "For outbound updates"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable"; | | "Disable"; |
| } | | } |
| } | | } |
| } | | } |
| container inter-as { | | container inter-as { |
| description | | description |
| "Inter AS"; | | "Inter AS"; |
| container install { | | container install { |
| presence "Indicates a install node is configured."; | | presence "Indicates a install node is configured."; |
| description | | description |
| "Install remote mvpn routes in default vrf"; | | "Install remote mvpn routes in default vrf"; |
| } | | } |
| } | | } |
| container global-table-multicast { | | container global-table-multicast { |
| presence "Indicates a global-table-multicast node is configured."; | | presence "Indicates a global-table-multicast node is configured."; |
| description | | description |
| "Enable global table multicast"; | | "Enable global table multicast"; |
| } | | } |
| container segmented-multicast { | | container segmented-multicast { |
| presence "Indicates a segmented-multicast node is configured."; | | presence "Indicates a segmented-multicast node is configured."; |
| description | | description |
| "Enable segmented multicast"; | | "Enable segmented multicast"; |
| } | | } |
| container label-security { | | container label-security { |
| description | | description |
| "BGP Label Security"; | | "BGP Label Security"; |
| container asbr { | | container asbr { |
| description | | description |
| "Label Security for ASBR peers"; | | "Label Security for ASBR peers"; |
| container rpf { | | container rpf { |
| presence "Indicates a rpf node is configured."; | | presence "Indicates a rpf node is configured."; |
| description | | description |
| "RPF Label Security for Option-B"; | | "RPF Label Security for Option-B"; |
| } | | } |
| } | | } |
| } | | } |
| container epe { | | container epe { |
| description | | description |
| "EPE related Global AFI knobs"; | | "EPE related Global AFI knobs"; |
| container backup { | | container backup { |
| description | | description |
| "Install a Backup path for the EPE labels"; | | "Install a Backup path for the EPE labels"; |
| container enable { | | container enable { |
| presence "Indicates a enable node is configured."; | | presence "Indicates a enable node is configured."; |
| description | | description |
| "Enable the EPE backup under current AFI"; | | "Enable the EPE backup under current AFI"; |
| } | | } |
| } | | } |
| } | | } |
| container default-martian-check { | | container default-martian-check { |
| description | | description |
| "Martian check default"; | | "Martian check default"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable"; | | "Disable"; |
| } | | } |
| } | | } |
| container export { | | container export { |
| description | | description |
| "Enable allowing leak/export of non-bestpaths"; | | "Enable allowing leak/export of non-bestpaths"; |
| container to { | | container to { |
| description | | description |
| "Leak to Destination Vrf"; | | "Leak to Destination Vrf"; |
| container vrf { | | container vrf { |
| description | | description |
| "Enable leak to a destination vrf"; | | "Enable leak to a destination vrf"; |
| container allow { | | container allow { |
| presence "Indicates a allow node is configured."; | | presence "Indicates a allow node is configured."; |
| description | | description |
| "Allow leak of path-type"; | | "Allow leak of path-type"; |
| container backup { | | container backup { |
| presence "Indicates a backup node is configured."; | | presence "Indicates a backup node is configured."; |
| description | | description |
| "Allow Export of backup path"; | | "Allow Export of backup path"; |
| container best-external { | | container best-external { |
| presence "Indicates a best-external node is configured."; | | presence "Indicates a best-external node is configured."; |
| description | | description |
| "Allow Export of best-external"; | | "Allow Export of best-external"; |
| } | | } |
| } | | } |
| container best-external { | | container best-external { |
| presence "Indicates a best-external node is configured."; | | presence "Indicates a best-external node is configured."; |
| description | | description |
| "Allow Export of best-external"; | | "Allow Export of best-external"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf prefix-ecmp-delay { | | leaf prefix-ecmp-delay { |
| when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast'"; | | when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast'"; |
| type uint32 { | | type uint32 { |
| range "10..60000" { | | range "10..60000" { |
| description | | description |
| "Interval(ms)"; | | "Interval(ms)"; |
| } | | } |
| } | | } |
| description | | description |
| "Enable delay in best path calculation and downloading prefixes to rib (ms)"; | | "Enable delay in best path calculation and downloading prefixes to rib (ms)"; |
| } | | } |
| leaf oor-threshold { | | leaf oor-threshold { |
| type uint32 { | | type uint32 { |
| range "10..90" { | | range "10..90" { |
| description | | description |
| "Out-Of-Resource threshold (in percentage)"; | | "Out-Of-Resource threshold (in percentage)"; |
| } | | } |
| } | | } |
| must "../prefix-ecmp-delay"; | | must "../prefix-ecmp-delay"; |
| description | | description |
| "Delay only when platform resource usage is above threshold"; | | "Delay only when platform resource usage is above threshold"; |
| } | | } |
| container peer-set-ids { | | container peer-set-ids { |
| when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast'"; | | when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast'"; |
| description | | description |
| "configuration for a single EPE Peer Set"; | | "configuration for a single EPE Peer Set"; |
| list peer-set-id { | | list peer-set-id { |
| key "peer-set-id"; | | key "peer-set-id"; |
| description | | description |
| "configuration for a single EPE Peer Set"; | | "configuration for a single EPE Peer Set"; |
| leaf peer-set-id { | | leaf peer-set-id { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Identifier for Each Peer-set SID we are going to create"; | | "Identifier for Each Peer-set SID we are going to create"; |
| } | | } |
| } | | } |
| description | | description |
| "configuration for a single EPE Peer Set"; | | "configuration for a single EPE Peer Set"; |
| } | | } |
| container peer-set-sid { | | container peer-set-sid { |
| description | | description |
| "configure a SID for peer-set EPE object"; | | "configure a SID for peer-set EPE object"; |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..1033575" { | | range "0..1033575" { |
| description | | description |
| "Segment Index to be assigned to this peer-set. The index will be off SRLB | | "Segment Index to be assigned to this peer-set. The index will be off SRLB |
| Note: The maximum index configurable in dynaminc SRLB range. | | Note: The maximum index configurable in dynaminc SRLB range. |
| Since SRe a dynamic range, actual maximum index can vary. | | Since SRe a dynamic range, actual maximum index can vary. |
| So pleast the currently configured SRLB range"; | | So pleast the currently configured SRLB range"; |
| } | | } |
| } | | } |
| description | | description |
| "Segment Index value to assign. This will be off SRLB range"; | | "Segment Index value to assign. This will be off SRLB range"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container segment-routing { | | container segment-routing { |
| when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast'"; | | when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast'"; |
| description | | description |
| "Segment Routing"; | | "Segment Routing"; |
| container prefix-sid-map { | | container prefix-sid-map { |
| when "../../af-name = 'ipv4-unicast'"; | | when "../../af-name = 'ipv4-unicast'"; |
| presence "Indicates a prefix-sid-map node is configured."; | | presence "Indicates a prefix-sid-map node is configured."; |
| description | | description |
| "Retrieve prefix id mapping from SRMS"; | | "Retrieve prefix id mapping from SRMS"; |
| } | | } |
| container srv6 { | | container srv6 { |
| presence "Indicates a srv6 node is configured."; | | presence "Indicates a srv6 node is configured."; |
| description | | description |
| "Specify SRv6 configurations"; | | "Specify SRv6 configurations"; |
| container alloc { | | container alloc { |
| description | | description |
| "SID Allocation"; | | "SID Allocation"; |
| container mode { | | container mode { |
| description | | description |
| "SID Allocation mode"; | | "SID Allocation mode"; |
| container per-ce { | | container per-ce { |
| must "not(../per-vrf or ../route-policy or ../per-vrf-46)"; | | must "not(../per-vrf or ../route-policy or ../per-vrf-46)"; |
| presence "Indicates a per-ce node is configured."; | | presence "Indicates a per-ce node is configured."; |
| description | | description |
| "Set per CE SRv6 SID mode"; | | "Set per CE SRv6 SID mode"; |
| } | | } |
| container per-vrf { | | container per-vrf { |
| must "not(../per-ce or ../route-policy or ../per-vrf-46)"; | | must "not(../per-ce or ../route-policy or ../per-vrf-46)"; |
| presence "Indicates a per-vrf node is configured."; | | presence "Indicates a per-vrf node is configured."; |
| description | | description |
| "Set per VRF SRv6 SID mode"; | | "Set per VRF SRv6 SID mode"; |
| } | | } |
| container per-vrf-46 { | | container per-vrf-46 { |
| must "not(../per-ce or ../route-policy or ../per-vrf)"; | | must "not(../per-ce or ../route-policy or ../per-vrf)"; |
| presence "Indicates a per-vrf-46 node is configured."; | | presence "Indicates a per-vrf-46 node is configured."; |
| description | | description |
| "Set per VRF 46 SRv6 SID mode"; | | "Set per VRF 46 SRv6 SID mode"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| must "not(../per-ce or ../per-vrf or ../per-vrf-46)"; | | must "not(../per-ce or ../per-vrf or ../per-vrf-46)"; |
| description | | description |
| "Use a route policy to determine the SID allocation mode and locator (if provided) for given prefix"; | | "Use a route policy to determine the SID allocation mode and locator (if provided) for given prefix"; |
| } | | } |
| } | | } |
| } | | } |
| leaf locator { | | leaf locator { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "locator name"; | | "locator name"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify locator"; | | "Specify locator"; |
| } | | } |
| container usid { | | container usid { |
| description | | description |
| "Micro-SID configuration"; | | "Micro-SID configuration"; |
| container allocation { | | container allocation { |
| description | | description |
| "Allocation mode"; | | "Allocation mode"; |
| container wide-local-id-block { | | container wide-local-id-block { |
| presence "Indicates a wide-local-id-block node is configured."; | | presence "Indicates a wide-local-id-block node is configured."; |
| description | | description |
| "Wide LIB allocation"; | | "Wide LIB allocation"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container option-b-asbr-only { | | container option-b-asbr-only { |
| when "../af-name = 'l2vpn-evpn'"; | | when "../af-name = 'l2vpn-evpn'"; |
| presence "Indicates a prefix-sid-map node is configured."; | | presence "Indicates a prefix-sid-map node is configured."; |
| description | | description |
| "Enable the ASBR router for option-B label exchange.This option makes the router an Option B ASBR for EVPN.Its assumed no DCI configs are present"; | | "Enable the ASBR router for option-B label exchange.This option makes the router an Option B ASBR for EVPN.Its assumed no DCI configs are present"; |
| } | | } |
| } | | } |
| } | | } |
| container neighbors { | | container neighbors { |
| description | | description |
| "Specify a neighbor router"; | | "Specify a neighbor router"; |
| list neighbor { | | list neighbor { |
| key "neighbor-address"; | | key "neighbor-address"; |
| description | | description |
| "Neighbor address"; | | "Neighbor address"; |
| leaf neighbor-address { | | leaf neighbor-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "Neighbor address"; | | "Neighbor address"; |
| } | | } |
| container address-families { | | container address-families { |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| list address-family { | | list address-family { |
| key "af-name"; | | key "af-name"; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| leaf af-name { | | leaf af-name { |
| type Bgp-address-family; | | type Bgp-address-family; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| } | | } |
| container use { | | container use { |
| description | | description |
| "Inherit configuration for this address-family from a group"; | | "Inherit configuration for this address-family from a group"; |
| leaf af-group { | | leaf af-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "AF group name"; | | "AF group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit configuration for this address-family from an af-group"; | | "Inherit configuration for this address-family from an af-group"; |
| } | | } |
| } | | } |
| container capability { | | container capability { |
| description | | description |
| "Advertise capability to the peer"; | | "Advertise capability to the peer"; |
| container orf { | | container orf { |
| description | | description |
| "Advertise ORF capability to the peer"; | | "Advertise ORF capability to the peer"; |
| container prefix { | | container prefix { |
| description | | description |
| "Advertise address prefix ORF capability to this neighbor"; | | "Advertise address prefix ORF capability to this neighbor"; |
| container receive { | | container receive { |
| must "not(../send or ../both or ../none)"; | | must "not(../send or ../both or ../none)"; |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Capability to RECEIVE the ORF from this neighbor"; | | "Capability to RECEIVE the ORF from this neighbor"; |
| } | | } |
| container send { | | container send { |
| must "not(../receive or ../both or ../none)"; | | must "not(../receive or ../both or ../none)"; |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Capability to SEND the ORF to this neighbor"; | | "Capability to SEND the ORF to this neighbor"; |
| } | | } |
| container both { | | container both { |
| must "not(../receive or ../send or ../none)"; | | must "not(../receive or ../send or ../none)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Capability to RECEIVE and SEND the ORF from/to this neighbor"; | | "Capability to RECEIVE and SEND the ORF from/to this neighbor"; |
| } | | } |
| container none { | | container none { |
| must "not(../receive or ../send or ../both)"; | | must "not(../receive or ../send or ../both)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No capability to RECEIVE or SEND the ORF from/to this neighbor"; | | "No capability to RECEIVE or SEND the ORF from/to this neighbor"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container default-originate { | | container default-originate { |
| presence "Indicates a default-originate node is configured."; | | presence "Indicates a default-originate node is configured."; |
| description | | description |
| "Originate default route to this neighbor"; | | "Originate default route to this neighbor"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy to specify criteria to originate default"; | | "Route policy to specify criteria to originate default"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../route-policy)"; | | must "not(../route-policy)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent default-originate being inherited from a parent group"; | | "Prevent default-originate being inherited from a parent group"; |
| } | | } |
| } | | } |
| container maximum-prefix { | | container maximum-prefix { |
| presence "Indicates a maximum-prefix node is configured."; | | presence "Indicates a maximum-prefix node is configured."; |
| description | | description |
| "Maximum number of prefixes to accept from this peer"; | | "Maximum number of prefixes to accept from this peer"; |
| leaf prefix-limit { | | leaf prefix-limit { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "maximum no. of prefix limit"; | | "maximum no. of prefix limit"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Maximum number of prefixes to accept from this peer"; | | "Maximum number of prefixes to accept from this peer"; |
| } | | } |
| leaf threshold { | | leaf threshold { |
| type uint32 { | | type uint32 { |
| range "1..100" { | | range "1..100" { |
| description | | description |
| "Threshold value (%) at which to generate a warning msg"; | | "Threshold value (%) at which to generate a warning msg"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Threshold value (%) at which to generate a warning msg"; | | "Threshold value (%) at which to generate a warning msg"; |
| } | | } |
| container warning-only { | | container warning-only { |
| presence "Indicates a warning-only node is configured."; | | presence "Indicates a warning-only node is configured."; |
| description | | description |
| "Only give warning message when limit is exceeded"; | | "Only give warning message when limit is exceeded"; |
| } | | } |
| leaf restart { | | leaf restart { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Time interval (min) after which peering session will be reestablished"; | | "Time interval (min) after which peering session will be reestablished"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart time interval"; | | "Restart time interval"; |
| } | | } |
| container discard-extra-paths { | | container discard-extra-paths { |
| presence "Indicates a discard-extra-paths node is configured."; | | presence "Indicates a discard-extra-paths node is configured."; |
| description | | description |
| "Discard extra paths when limit is exceeded"; | | "Discard extra paths when limit is exceeded"; |
| } | | } |
| } | | } |
| leaf optimal-route-reflection { | | leaf optimal-route-reflection { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure optiomal-route-reflection for this neighbor"; | | "Configure optiomal-route-reflection for this neighbor"; |
| } | | } |
| container next-hop-self { | | container next-hop-self { |
| presence "Indicates a next-hop-self node is configured."; | | presence "Indicates a next-hop-self node is configured."; |
| description | | description |
| "Disable the next hop calculation for this neighbor"; | | "Disable the next hop calculation for this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent next-hop-self from being inherited from the parent"; | | "Prevent next-hop-self from being inherited from the parent"; |
| } | | } |
| } | | } |
| container next-hop-unchanged { | | container next-hop-unchanged { |
| presence "Indicates a next-hop-unchanged node is configured."; | | presence "Indicates a next-hop-unchanged node is configured."; |
| description | | description |
| "Do not overwrite next hop before advertising to eBGP peers"; | | "Do not overwrite next hop before advertising to eBGP peers"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent next-hop-unchanged from being inherited from the parent"; | | "Prevent next-hop-unchanged from being inherited from the parent"; |
| } | | } |
| } | | } |
| container next-hop-unchanged-multipath { | | container next-hop-unchanged-multipath { |
| presence "Indicates a next-hop-unchanged-multipath node is configured."; | | presence "Indicates a next-hop-unchanged-multipath node is configured."; |
| description | | description |
| "Do not overwrite nexthop before advertising multipaths"; | | "Do not overwrite nexthop before advertising multipaths"; |
| } | | } |
| container slow-peer { | | container slow-peer { |
| description | | description |
| "Configure this neighbor as slow-peer"; | | "Configure this neighbor as slow-peer"; |
| container static { | | container static { |
| must "not(../dynamic)"; | | must "not(../dynamic)"; |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Configure this neighbor as static slow-peer"; | | "Configure this neighbor as static slow-peer"; |
| } | | } |
| container dynamic { | | container dynamic { |
| must "not(../static)"; | | must "not(../static)"; |
| presence "Indicates a dynamic node is configured."; | | presence "Indicates a dynamic node is configured."; |
| description | | description |
| "Configure this neighbor as dynamic slow-peer"; | | "Configure this neighbor as dynamic slow-peer"; |
| leaf threshold { | | leaf threshold { |
| type uint16 { | | type uint16 { |
| range "120..3600" { | | range "120..3600" { |
| description | | description |
| "Threshold (in seconds) to detect this neighbor as slow-peer"; | | "Threshold (in seconds) to detect this neighbor as slow-peer"; |
| } | | } |
| } | | } |
| description | | description |
| "Threshold (in seconds) to detect this neighbor as slow-peer"; | | "Threshold (in seconds) to detect this neighbor as slow-peer"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable dynamic slow-peer"; | | "Disable dynamic slow-peer"; |
| } | | } |
| } | | } |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validation { | | container validation { |
| description | | description |
| "BGP origin-AS validation knobs"; | | "BGP origin-AS validation knobs"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable RPKI origin-AS validation"; | | "Disable RPKI origin-AS validation"; |
| } | | } |
| } | | } |
| } | | } |
| container bestpath { | | container bestpath { |
| description | | description |
| "Change default route selection criteria"; | | "Change default route selection criteria"; |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container allow { | | container allow { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container invalid { | | container invalid { |
| presence "Indicates a invalid node is configured."; | | presence "Indicates a invalid node is configured."; |
| description | | description |
| "BGP bestpath selection will allow 'invalid' origin-AS"; | | "BGP bestpath selection will allow 'invalid' origin-AS"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy"; | | "Apply route policy"; |
| leaf in { | | leaf in { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Apply route policy to inbound routes"; | | "Apply route policy to inbound routes"; |
| } | | } |
| leaf out { | | leaf out { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Apply route policy to outbound routes"; | | "Apply route policy to outbound routes"; |
| } | | } |
| container retention { | | container retention { |
| description | | description |
| "Apply retention policy to inbound routes"; | | "Apply retention policy to inbound routes"; |
| leaf route-policy-name { | | leaf route-policy-name { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| must "../retention-time"; | | must "../retention-time"; |
| description | | description |
| "Apply retention policy to inbound routes"; | | "Apply retention policy to inbound routes"; |
| } | | } |
| leaf retention-time { | | leaf retention-time { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| must "../route-policy-name"; | | must "../route-policy-name"; |
| description | | description |
| "Retention-time for this neighbor"; | | "Retention-time for this neighbor"; |
| } | | } |
| } | | } |
| } | | } |
| container orf { | | container orf { |
| description | | description |
| "Specify ORF and inbound filtering criteria"; | | "Specify ORF and inbound filtering criteria"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy to specify ORF and inbound filter"; | | "Route policy to specify ORF and inbound filter"; |
| } | | } |
| } | | } |
| container replace-private-as { | | container replace-private-as { |
| presence "Indicates a replace-private-as node is configured."; | | presence "Indicates a replace-private-as node is configured."; |
| description | | description |
| "Replace private AS number from outbound updates"; | | "Replace private AS number from outbound updates"; |
| container internal { | | container internal { |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| } | | } |
| container remove-private-as { | | container remove-private-as { |
| presence "Indicates a entire-aspath node is configured."; | | presence "Indicates a entire-aspath node is configured."; |
| description | | description |
| "Remove private AS number from outbound updates"; | | "Remove private AS number from outbound updates"; |
| container entire-aspath { | | container entire-aspath { |
| must "not(../inheritance-disable or ../internal)"; | | must "not(../inheritance-disable or ../internal)"; |
| presence "Indicates a entire-aspath node is configured."; | | presence "Indicates a entire-aspath node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../entire-aspath or ../internal)"; | | must "not(../entire-aspath or ../internal)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| container internal { | | container internal { |
| must "not(../entire-aspath or ../inheritance-disable)"; | | must "not(../entire-aspath or ../inheritance-disable)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container remove-private-as-inbound { | | container remove-private-as-inbound { |
| must "not(entire-aspath and inheritance-disable)"; | | must "not(entire-aspath and inheritance-disable)"; |
| presence "Indicates a remove-private-as-inbound node is configured."; | | presence "Indicates a remove-private-as-inbound node is configured."; |
| description | | description |
| "Remove private AS number from inbound updates"; | | "Remove private AS number from inbound updates"; |
| container entire-aspath { | | container entire-aspath { |
| presence "Indicates a entire-aspath node is configured."; | | presence "Indicates a entire-aspath node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| } | | } |
| container enforce-multiple-labels { | | container enforce-multiple-labels { |
| presence "Indicates a enforce-multiple-labels node is configured."; | | presence "Indicates a enforce-multiple-labels node is configured."; |
| description | | description |
| "Enforce support for multiple labels (requires manual session flap)"; | | "Enforce support for multiple labels (requires manual session flap)"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent enforce-multiple-labels from being inherited from the parent"; | | "Prevent enforce-multiple-labels from being inherited from the parent"; |
| } | | } |
| } | | } |
| container route-reflector-client { | | container route-reflector-client { |
| presence "Indicates a route-reflector-client node is configured."; | | presence "Indicates a route-reflector-client node is configured."; |
| description | | description |
| "Configure a neighbor as Route Reflector client"; | | "Configure a neighbor as Route Reflector client"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent route-reflector-client from being inherited from the parent"; | | "Prevent route-reflector-client from being inherited from the parent"; |
| } | | } |
| } | | } |
| container accept-route-legacy-rt { | | container accept-route-legacy-rt { |
| presence "Indicates a accept-route-legacy-rt node is configured."; | | presence "Indicates a accept-route-legacy-rt node is configured."; |
| description | | description |
| "Configure a neighbor to support legacy PE for RT-Constraint AF"; | | "Configure a neighbor to support legacy PE for RT-Constraint AF"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent accept-route-legacy-RT from being inherited from the parent"; | | "Prevent accept-route-legacy-RT from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-community-ebgp { | | container send-community-ebgp { |
| presence "Indicates a send-community-ebgp node is configured."; | | presence "Indicates a send-community-ebgp node is configured."; |
| description | | description |
| "Send community attribute to this external neighbor"; | | "Send community attribute to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-community-ebgp from being inherited from the parent"; | | "Prevent send-community-ebgp from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-community-gshut-ebgp { | | container send-community-gshut-ebgp { |
| presence "Indicates a send-community-gshut-ebgp node is configured."; | | presence "Indicates a send-community-gshut-ebgp node is configured."; |
| description | | description |
| "Allow the g-shut community to be sent to this external neighbor"; | | "Allow the g-shut community to be sent to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-community-gshut-ebgp from being inherited from the parent"; | | "Prevent send-community-gshut-ebgp from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-extended-community-ebgp { | | container send-extended-community-ebgp { |
| presence "Indicates a send-extended-community-ebgp node is configured."; | | presence "Indicates a send-extended-community-ebgp node is configured."; |
| description | | description |
| "Send extended community attribute to this external neighbor"; | | "Send extended community attribute to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-extended-community-ebgp from being inherited from parent"; | | "Prevent send-extended-community-ebgp from being inherited from parent"; |
| } | | } |
| } | | } |
| container soft-reconfiguration { | | container soft-reconfiguration { |
| description | | description |
| "Per neighbor soft reconfiguration"; | | "Per neighbor soft reconfiguration"; |
| container inbound { | | container inbound { |
| presence "Indicates a inbound node is configured."; | | presence "Indicates a inbound node is configured."; |
| description | | description |
| "Allow inbound soft reconfiguration for this neighbor"; | | "Allow inbound soft reconfiguration for this neighbor"; |
| container rpki-dropped-only { | | container rpki-dropped-only { |
| must "not(../rpki-tested-only or ../always or ../inheritance-disable)"; | | must "not(../rpki-tested-only or ../always or ../inheritance-disable)"; |
| presence "Indicates a rpki-dropped-only node is configured."; | | presence "Indicates a rpki-dropped-only node is configured."; |
| description | | description |
| "Use soft-reconfig, for paths dropped by route-policy which have RPKI validity state check"; | | "Use soft-reconfig, for paths dropped by route-policy which have RPKI validity state check"; |
| } | | } |
| container rpki-tested-only { | | container rpki-tested-only { |
| must "not(../rpki-dropped-only or ../always or ../inheritance-disable)"; | | must "not(../rpki-dropped-only or ../always or ../inheritance-disable)"; |
| presence "Indicates a rpki-tested-only node is configured."; | | presence "Indicates a rpki-tested-only node is configured."; |
| description | | description |
| "Use soft-reconfig for paths tested or dropped by route-policy which have RPKI validity state check"; | | "Use soft-reconfig for paths tested or dropped by route-policy which have RPKI validity state check"; |
| } | | } |
| container always { | | container always { |
| must "not(../rpki-dropped-only or ../rpki-tested-only or ../inheritance-disable)"; | | must "not(../rpki-dropped-only or ../rpki-tested-only or ../inheritance-disable)"; |
| presence "Indicates a always node is configured."; | | presence "Indicates a always node is configured."; |
| description | | description |
| "Always use soft reconfig, even if route refresh is supported"; | | "Always use soft reconfig, even if route refresh is supported"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../rpki-dropped-only or ../rpki-tested-only or ../always)"; | | must "not(../rpki-dropped-only or ../rpki-tested-only or ../always)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent soft-reconfiguration from being inherited from the parent"; | | "Prevent soft-reconfiguration from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container update { | | container update { |
| description | | description |
| "BGP out bound message"; | | "BGP out bound message"; |
| container out { | | container out { |
| description | | description |
| "BGP out bound message handling"; | | "BGP out bound message handling"; |
| container originator-loopcheck { | | container originator-loopcheck { |
| presence "Indicates a originator-loopcheck node is configured."; | | presence "Indicates a originator-loopcheck node is configured."; |
| description | | description |
| "Loop check for same originator which sent the route"; | | "Loop check for same originator which sent the route"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable originator loop check"; | | "Disable originator loop check"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container advertise { | | container advertise { |
| description | | description |
| "Per neighbor advertisement options"; | | "Per neighbor advertisement options"; |
| container permanent-network { | | container permanent-network { |
| when | | when |
| "../../af-name != 'vpnv4-unicast' and | | "../../af-name != 'vpnv4-unicast' and |
| ../../af-name != 'vpnv4-multicast' and | | ../../af-name != 'vpnv4-multicast' and |
| ../../af-name != 'vpnv4-flowspec' and | | ../../af-name != 'vpnv4-flowspec' and |
| ../../af-name != 'vpnv6-flowspec' and | | ../../af-name != 'vpnv6-flowspec' and |
| ../../af-name != 'vpnv6-multicast' and | | ../../af-name != 'vpnv6-multicast' and |
| ../../af-name != 'vpnv6-unicast' and | | ../../af-name != 'vpnv6-unicast' and |
| ../../af-name != 'l2vpn-evpn' and | | ../../af-name != 'l2vpn-evpn' and |
| ../../af-name != 'l2vpn-mspw' and | | ../../af-name != 'l2vpn-mspw' and |
| ../../af-name != 'l2vpn-vpls-vpws'"; | | ../../af-name != 'l2vpn-vpls-vpws'"; |
| presence "Indicates a permanent-network node is configured."; | | presence "Indicates a permanent-network node is configured."; |
| description | | description |
| "Allow permanent networks for this neighbor"; | | "Allow permanent networks for this neighbor"; |
| } | | } |
| container local-labeled-route { | | container local-labeled-route { |
| when | | when |
| "../../af-name != 'vpnv4-unicast' and | | "../../af-name != 'vpnv4-unicast' and |
| ../../af-name != 'vpnv4-multicast' and | | ../../af-name != 'vpnv4-multicast' and |
| ../../af-name != 'vpnv4-flowspec' and | | ../../af-name != 'vpnv4-flowspec' and |
| ../../af-name != 'vpnv6-flowspec' and | | ../../af-name != 'vpnv6-flowspec' and |
| ../../af-name != 'vpnv6-multicast' and | | ../../af-name != 'vpnv6-multicast' and |
| ../../af-name != 'vpnv6-unicast' and | | ../../af-name != 'vpnv6-unicast' and |
| ../../af-name != 'l2vpn-evpn' and | | ../../af-name != 'l2vpn-evpn' and |
| ../../af-name != 'l2vpn-mspw' and | | ../../af-name != 'l2vpn-mspw' and |
| ../../af-name != 'l2vpn-vpls-vpws'"; | | ../../af-name != 'l2vpn-vpls-vpws'"; |
| presence "Indicates a local-labeled-route node is configured."; | | presence "Indicates a local-labeled-route node is configured."; |
| description | | description |
| "Advertisement of routes with local-label"; | | "Advertisement of routes with local-label"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise routes with local-label via Unicast SAFI"; | | "Do not advertise routes with local-label via Unicast SAFI"; |
| } | | } |
| } | | } |
| container vpnv4 { | | container vpnv4 { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "VPNv4 Address Family"; | | "VPNv4 Address Family"; |
| container unicast { | | container unicast { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container enable { | | container enable { |
| presence "Indicates an enable node is configured."; | | presence "Indicates an enable node is configured."; |
| description | | description |
| "Enable advertise vpnv4 unicast"; | | "Enable advertise vpnv4 unicast"; |
| container re-originated { | | container re-originated { |
| presence "Indicates a re-originated node is configured."; | | presence "Indicates a re-originated node is configured."; |
| description | | description |
| "Advertise re-orignated and local routes only"; | | "Advertise re-orignated and local routes only"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Advertise re-originated and local routes with stitching Route-Targets"; | | "Advertise re-originated and local routes with stitching Route-Targets"; |
| } | | } |
| } | | } |
| } | | } |
| container imported-from-default-vrf { | | container imported-from-default-vrf { |
| description | | description |
| "Default VRF imported routes"; | | "Default VRF imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of default VRF imported routes"; | | "Disable advertisement of default VRF imported routes"; |
| } | | } |
| } | | } |
| container imported-from-vrf { | | container imported-from-vrf { |
| description | | description |
| "VRF extranet imported routes"; | | "VRF extranet imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF extranet imported routes"; | | "Disable advertisement of VRF extranet imported routes"; |
| } | | } |
| } | | } |
| container imported-from-bridgedomain { | | container imported-from-bridgedomain { |
| description | | description |
| "VRF EVPN extranet imported routes "; | | "VRF EVPN extranet imported routes "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF EVPN extranet imported routes"; | | "Disable advertisement of VRF EVPN extranet imported routes"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container vpnv6 { | | container vpnv6 { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "VPNv6 Address Family"; | | "VPNv6 Address Family"; |
| container unicast { | | container unicast { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container enable { | | container enable { |
| presence "Indicates an enable node is configured."; | | presence "Indicates an enable node is configured."; |
| description | | description |
| "Enable advertise vpnv6 unicast"; | | "Enable advertise vpnv6 unicast"; |
| container re-originated { | | container re-originated { |
| presence "Indicates a re-originated node is configured."; | | presence "Indicates a re-originated node is configured."; |
| description | | description |
| "Advertise Re-orignated routes only"; | | "Advertise Re-orignated routes only"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Advertise re-originated routes with stitching Route-Targets"; | | "Advertise re-originated routes with stitching Route-Targets"; |
| } | | } |
| } | | } |
| } | | } |
| container imported-from-default-vrf { | | container imported-from-default-vrf { |
| description | | description |
| "Default VRF imported routes"; | | "Default VRF imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of default VRF imported routes"; | | "Disable advertisement of default VRF imported routes"; |
| } | | } |
| } | | } |
| container imported-from-vrf { | | container imported-from-vrf { |
| description | | description |
| "VRF extranet imported routes"; | | "VRF extranet imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF extranet imported routes"; | | "Disable advertisement of VRF extranet imported routes"; |
| } | | } |
| } | | } |
| container imported-from-bridgedomain { | | container imported-from-bridgedomain { |
| description | | description |
| "VRF EVPN extranet imported routes"; | | "VRF EVPN extranet imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF EVPN extranet imported routes"; | | "Disable advertisement of VRF EVPN extranet imported routes"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container l2vpn { | | container l2vpn { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "L2VPN Address Family"; | | "L2VPN Address Family"; |
| container evpn { | | container evpn { |
| when "../../../af-name = 'l2vpn-evpn'"; | | when "../../../af-name = 'l2vpn-evpn'"; |
| presence "Indicates a evpn node is configured."; | | presence "Indicates a evpn node is configured."; |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container re-originated { | | container re-originated { |
| presence "Indicates a re-originated node is configured."; | | presence "Indicates a re-originated node is configured."; |
| description | | description |
| "Advertise Re-orignated routes only"; | | "Advertise Re-orignated routes only"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Advertise re-originated routes with stitching Route-Targets"; | | "Advertise re-originated routes with stitching Route-Targets"; |
| } | | } |
| } | | } |
| } | | } |
| container evpn-disable { | | container evpn-disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Advertisement of selected SAFI"; | | "Disable Advertisement of selected SAFI"; |
| } | | } |
| container vpls-vpws { | | container vpls-vpws { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Advertisement of selected SAFI"; | | "Disable Advertisement of selected SAFI"; |
| } | | } |
| } | | } |
| container mspw { | | container mspw { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Advertisement of selected SAFI"; | | "Disable Advertisement of selected SAFI"; |
| } | | } |
| } | | } |
| container gateway-ip-disable { | | container gateway-ip-disable { |
| when "../../../af-name = 'l2vpn-evpn'"; | | when "../../../af-name = 'l2vpn-evpn'"; |
| presence "Indicates a gateway-ip-disable node is configured."; | | presence "Indicates a gateway-ip-disable node is configured."; |
| description | | description |
| "Disable advertisement of non-zero EVPN Gateway-IP"; | | "Disable advertisement of non-zero EVPN Gateway-IP"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent EVPN Gateway-IP disable being inherited from a parent group"; | | "Prevent EVPN Gateway-IP disable being inherited from a parent group"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container encapsulation-type { | | container encapsulation-type { |
| when | | when |
| "../af-name = 'ipv4-unicast' or | | "../af-name = 'ipv4-unicast' or |
| ../af-name = 'ipv6-unicast' or | | ../af-name = 'ipv6-unicast' or |
| ../af-name = 'vpnv4-unicast' or | | ../af-name = 'vpnv4-unicast' or |
| ../af-name = 'vpnv6-unicast' or | | ../af-name = 'vpnv6-unicast' or |
| ../af-name = 'l2vpn-evpn'"; | | ../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "Specify encapsulation type"; | | "Specify encapsulation type"; |
| container vxlan { | | container vxlan { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| must "not(../srv6)"; | | must "not(../srv6)"; |
| presence "Indicates a vxlan node is configured."; | | presence "Indicates a vxlan node is configured."; |
| description | | description |
| "VxLAN encapsulation"; | | "VxLAN encapsulation"; |
| } | | } |
| container srv6 { | | container srv6 { |
| when "../../af-name != 'l2vpn-evpn'"; | | when "../../af-name != 'l2vpn-evpn'"; |
| must "not(../vxlan)"; | | must "not(../vxlan)"; |
| presence "Indicates a srv6 node is configured."; | | presence "Indicates a srv6 node is configured."; |
| description | | description |
| "SRv6 encapsulation"; | | "SRv6 encapsulation"; |
| } | | } |
| } | | } |
| container segment-routing { | | container segment-routing { |
| when "../af-name = 'vpnv4-unicast'"; | | when "../af-name = 'vpnv4-unicast'"; |
| description | | description |
| "enable segment-routing srv6 version 4"; | | "enable segment-routing srv6 version 4"; |
| container srv6 { | | container srv6 { |
| description | | description |
| "srv6 version 4"; | | "srv6 version 4"; |
| container prefix-sid-type4 { | | container prefix-sid-type4 { |
| presence "Indicates a prefix-sid-type4 node is configured."; | | presence "Indicates a prefix-sid-type4 node is configured."; |
| description | | description |
| "Enable prefix sid version 4 encoding"; | | "Enable prefix sid version 4 encoding"; |
| } | | } |
| } | | } |
| } | | } |
| container import { | | container import { |
| when "../af-name = 'vpnv4-unicast' or ../af-name = 'vpnv6-unicast' or ../af-name = 'l2vpn-evpn'"; | | when "../af-name = 'vpnv4-unicast' or ../af-name = 'vpnv6-unicast' or ../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "Import options for neighbor address-family routes"; | | "Import options for neighbor address-family routes"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Import routes using stitching RTs"; | | "Import routes using stitching RTs"; |
| container re-originate { | | container re-originate { |
| presence "Indicates a re-originate node is configured."; | | presence "Indicates a re-originate node is configured."; |
| description | | description |
| "Re-originate imported routes"; | | "Re-originate imported routes"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Reoriginate imported routes by attaching stitching RTs"; | | "Reoriginate imported routes by attaching stitching RTs"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf weight { | | leaf weight { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "default weight"; | | "default weight"; |
| } | | } |
| } | | } |
| description | | description |
| "Set default weight for routes from this neighbor"; | | "Set default weight for routes from this neighbor"; |
| } | | } |
| container allowas-in { | | container allowas-in { |
| presence "Indicates a allowas-in node is configured."; | | presence "Indicates a allowas-in node is configured."; |
| description | | description |
| "Allow as-path with my AS present in it"; | | "Allow as-path with my AS present in it"; |
| leaf number-of-occurences { | | leaf number-of-occurences { |
| type uint32 { | | type uint32 { |
| range "1..10" { | | range "1..10" { |
| description | | description |
| "Number of occurences of AS number"; | | "Number of occurences of AS number"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of occurences of AS number"; | | "Number of occurences of AS number"; |
| } | | } |
| } | | } |
| container allowconfedas-in { | | container allowconfedas-in { |
| presence "Indicates a allowconfedas-in node is configured."; | | presence "Indicates a allowconfedas-in node is configured."; |
| description | | description |
| "Allow as-path with my confederation AS present in it"; | | "Allow as-path with my confederation AS present in it"; |
| leaf number-of-occurences { | | leaf number-of-occurences { |
| type uint32 { | | type uint32 { |
| range "1..10" { | | range "1..10" { |
| description | | description |
| "Number of occurences of confederation AS number"; | | "Number of occurences of confederation AS number"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of occurences of confederation AS number"; | | "Number of occurences of confederation AS number"; |
| } | | } |
| } | | } |
| container long-lived-graceful-restart { | | container long-lived-graceful-restart { |
| description | | description |
| "Enable long lived graceful restart support"; | | "Enable long lived graceful restart support"; |
| container stale-time { | | container stale-time { |
| description | | description |
| "Maximum time to wait before purging long-lived stale routes"; | | "Maximum time to wait before purging long-lived stale routes"; |
| leaf send { | | leaf send { |
| type uint32 { | | type uint32 { |
| range "0..16777215" { | | range "0..16777215" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Stale-time sent in LLGR Capability"; | | "Stale-time sent in LLGR Capability"; |
| } | | } |
| leaf accept { | | leaf accept { |
| type uint32 { | | type uint32 { |
| range "0..16777215" { | | range "0..16777215" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum stale-time acceptable from neighbor"; | | "Maximum stale-time acceptable from neighbor"; |
| } | | } |
| } | | } |
| container capable { | | container capable { |
| presence "Indicates a capable node is configured."; | | presence "Indicates a capable node is configured."; |
| description | | description |
| "Treat neighbor as LLGR capable"; | | "Treat neighbor as LLGR capable"; |
| } | | } |
| } | | } |
| container as-override { | | container as-override { |
| presence "Indicates a as-override node is configured."; | | presence "Indicates a as-override node is configured."; |
| description | | description |
| "Override matching AS-number while sending update"; | | "Override matching AS-number while sending update"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent as-override from being inherited from the parent"; | | "Prevent as-override from being inherited from the parent"; |
| } | | } |
| } | | } |
| container aigp { | | container aigp { |
| presence "Indicates a aigp node is configured."; | | presence "Indicates a aigp node is configured."; |
| description | | description |
| "Enable AIGP for this neighbor "; | | "Enable AIGP for this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable AIGP"; | | "Disable AIGP"; |
| } | | } |
| } | | } |
| container aigp-send { | | container aigp-send { |
| description | | description |
| "Copy AIGP"; | | "Copy AIGP"; |
| container cost-community { | | container cost-community { |
| must "(cost-community-id and poi) or disable"; | | must "(cost-community-id and poi) or disable"; |
| presence "Indicates a cost-community node is configured."; | | presence "Indicates a cost-community node is configured."; |
| description | | description |
| "Send AIGP value in Cost Community"; | | "Send AIGP value in Cost Community"; |
| leaf cost-community-id { | | leaf cost-community-id { |
| type uint32 { | | type uint32 { |
| range "0..255" { | | range "0..255" { |
| description | | description |
| "Cost community ID"; | | "Cost community ID"; |
| } | | } |
| } | | } |
| must "not(../disable)"; | | must "not(../disable)"; |
| description | | description |
| "Cost community ID"; | | "Cost community ID"; |
| } | | } |
| container poi { | | container poi { |
| must "(igp-cost or pre-bestpath) and not(igp-cost and pre-bestpath)"; | | must "(igp-cost or pre-bestpath) and not(igp-cost and pre-bestpath)"; |
| presence "Indicates a poi node is configured."; | | presence "Indicates a poi node is configured."; |
| description | | description |
| "Point of insertion for bestpath calculation"; | | "Point of insertion for bestpath calculation"; |
| container igp-cost { | | container igp-cost { |
| presence "Indicates a igp-cost node is configured."; | | presence "Indicates a igp-cost node is configured."; |
| description | | description |
| "Cost community is used after IGP distance to next hop"; | | "Cost community is used after IGP distance to next hop"; |
| container transitive { | | container transitive { |
| presence "Indicates a transitive node is configured."; | | presence "Indicates a transitive node is configured."; |
| description | | description |
| "Enable transitive cost community"; | | "Enable transitive cost community"; |
| } | | } |
| } | | } |
| container pre-bestpath { | | container pre-bestpath { |
| presence "Indicates a pre-bestpath node is configured."; | | presence "Indicates a pre-bestpath node is configured."; |
| description | | description |
| "Cost community is first step in best path calculation"; | | "Cost community is first step in best path calculation"; |
| container transitive { | | container transitive { |
| presence "Indicates a transitive node is configured."; | | presence "Indicates a transitive node is configured."; |
| description | | description |
| "Enable transitive cost community"; | | "Enable transitive cost community"; |
| } | | } |
| } | | } |
| } | | } |
| container disable { | | container disable { |
| must "not(../cost-community-id)"; | | must "not(../cost-community-id)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable aigp send cost-community"; | | "Disable aigp send cost-community"; |
| } | | } |
| } | | } |
| container med { | | container med { |
| presence "Indicates a med node is configured."; | | presence "Indicates a med node is configured."; |
| description | | description |
| "Send AIGP value in MED"; | | "Send AIGP value in MED"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable aigp send med"; | | "Disable aigp send med"; |
| } | | } |
| } | | } |
| } | | } |
| container validation { | | container validation { |
| when "../af-name = 'ipv4-flowspec' or ../af-name = 'ipv6-flowspec'"; | | when "../af-name = 'ipv4-flowspec' or ../af-name = 'ipv6-flowspec'"; |
| presence "Indicates a validation node is configured."; | | presence "Indicates a validation node is configured."; |
| description | | description |
| "Flowspec Validation for this neighbor "; | | "Flowspec Validation for this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Flowspec Validation"; | | "Disable Flowspec Validation"; |
| } | | } |
| container redirect { | | container redirect { |
| description | | description |
| "Flowspec Redirect nexthop Validation"; | | "Flowspec Redirect nexthop Validation"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Flowspec Redirect nexthop Validation"; | | "Disable Flowspec Redirect nexthop Validation"; |
| } | | } |
| } | | } |
| } | | } |
| container send-multicast-attributes { | | container send-multicast-attributes { |
| when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv4-labeled-unicast' or ../af-name = 'ipv6-labeled-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-multicast' or ../af-name = 'ipv4-mvpn' or ../af-name = 'ipv6-mvpn'"; | | when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv4-labeled-unicast' or ../af-name = 'ipv6-labeled-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-multicast' or ../af-name = 'ipv4-mvpn' or ../af-name = 'ipv6-mvpn'"; |
| presence "Indicates a send-multicast-attributes node is configured."; | | presence "Indicates a send-multicast-attributes node is configured."; |
| description | | description |
| "Send multicast attributes to this neighbor "; | | "Send multicast attributes to this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable send multicast attribute"; | | "Disable send multicast attribute"; |
| } | | } |
| } | | } |
| container signalling { | | container signalling { |
| description | | description |
| "Signalling protocols to disable, BGP or LDP"; | | "Signalling protocols to disable, BGP or LDP"; |
| container bgp { | | container bgp { |
| description | | description |
| "Select BGP to disable"; | | "Select BGP to disable"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Signalling type"; | | "Disable Signalling type"; |
| } | | } |
| } | | } |
| container ldp { | | container ldp { |
| description | | description |
| "Select LDP to disable"; | | "Select LDP to disable"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Signalling type"; | | "Disable Signalling type"; |
| } | | } |
| } | | } |
| } | | } |
| container accept-own { | | container accept-own { |
| presence "Indicates a accept-own node is configured."; | | presence "Indicates a accept-own node is configured."; |
| description | | description |
| "Handle self-originated routes with Accept-Own community"; | | "Handle self-originated routes with Accept-Own community"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent item being inherited from a parent group"; | | "Prevent item being inherited from a parent group"; |
| } | | } |
| } | | } |
| container cluster-id { | | container cluster-id { |
| description | | description |
| "Allow routes with first cluster-id in list is same as the router's cluster id"; | | "Allow routes with first cluster-id in list is same as the router's cluster id"; |
| container allow-equal { | | container allow-equal { |
| presence "Indicates a allow-equal node is configured."; | | presence "Indicates a allow-equal node is configured."; |
| description | | description |
| "Accept routes with first cluster-id in list is same as the router's cluster id"; | | "Accept routes with first cluster-id in list is same as the router's cluster id"; |
| container disable { | | container disable { |
| presence "Indicates a allow-equal node is configured."; | | presence "Indicates a allow-equal node is configured."; |
| description | | description |
| "Prevent the configuration from being inherited."; | | "Prevent the configuration from being inherited."; |
| } | | } |
| } | | } |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Paths from this neighbor is eligible for multipath"; | | "Paths from this neighbor is eligible for multipath"; |
| } | | } |
| container additional-paths { | | container additional-paths { |
| description | | description |
| "Additional paths capability"; | | "Additional paths capability"; |
| container receive { | | container receive { |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Additional paths Receive capability"; | | "Additional paths Receive capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Prevent additional-paths receive from being inherited from the parent"; | | "Prevent additional-paths receive from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send { | | container send { |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Additional paths Send capability"; | | "Additional paths Send capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Prevent additional-paths receive from being inherited from the parent"; | | "Prevent additional-paths receive from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container update { | | container update { |
| description | | description |
| "BGP Update configuration"; | | "BGP Update configuration"; |
| container in { | | container in { |
| description | | description |
| "Inbound update message handling"; | | "Inbound update message handling"; |
| container filtering { | | container filtering { |
| presence "Indicates a filtering node is configured."; | | presence "Indicates a filtering node is configured."; |
| description | | description |
| "Inbound update message filtering"; | | "Inbound update message filtering"; |
| container message { | | container message { |
| description | | description |
| "Filtered update messages"; | | "Filtered update messages"; |
| container buffers { | | container buffers { |
| presence "Indicates a buffers node is configured."; | | presence "Indicates a buffers node is configured."; |
| description | | description |
| "Filtered update message buffers"; | | "Filtered update message buffers"; |
| leaf number-of-buffers { | | leaf number-of-buffers { |
| type uint32 { | | type uint32 { |
| range "0..25" { | | range "0..25" { |
| description | | description |
| "Number of buffers to store filtered update messages (resizing does not take effect after filtering action has started)"; | | "Number of buffers to store filtered update messages (resizing does not take effect after filtering action has started)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Filtered update message buffers"; | | "Filtered update message buffers"; |
| } | | } |
| container non-circular { | | container non-circular { |
| presence "Indicates a non-circular node is configured."; | | presence "Indicates a non-circular node is configured."; |
| description | | description |
| "Message buffer list is not circular"; | | "Message buffer list is not circular"; |
| } | | } |
| } | | } |
| } | | } |
| container logging { | | container logging { |
| description | | description |
| "Update filtering syslog message"; | | "Update filtering syslog message"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable update filtering syslog message"; | | "Disable update filtering syslog message"; |
| } | | } |
| } | | } |
| container attribute-filter { | | container attribute-filter { |
| description | | description |
| "Attribute-filter configuration"; | | "Attribute-filter configuration"; |
| leaf group { | | leaf group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Attribute-filter group name"; | | "Attribute-filter group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attribute-filter group configuration"; | | "Attribute-filter group configuration"; |
| } | | } |
| } | | } |
| } | | } |
| container merge { | | container merge { |
| description | | description |
| "Merge incoming updates"; | | "Merge incoming updates"; |
| container safi { | | container safi { |
| description | | description |
| "SAFI of the NLRIs to merge"; | | "SAFI of the NLRIs to merge"; |
| container unicast { | | container unicast { |
| description | | description |
| "IPv4/IPv6 unicast paths"; | | "IPv4/IPv6 unicast paths"; |
| container labeled-unicast { | | container labeled-unicast { |
| presence "Indicates a labeled-unicast node is configured."; | | presence "Indicates a labeled-unicast node is configured."; |
| description | | description |
| "IPv4/IPv6 labeled-unicast paths"; | | "IPv4/IPv6 labeled-unicast paths"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container error-handling { | | container error-handling { |
| description | | description |
| "Inbound update message error handling"; | | "Inbound update message error handling"; |
| container avoid-reset { | | container avoid-reset { |
| presence "Indicates a avoid-reset node is configured."; | | presence "Indicates a avoid-reset node is configured."; |
| description | | description |
| "Avoid neighbor reset during inbound update message error handling"; | | "Avoid neighbor reset during inbound update message error handling"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Neighbor may be reset during inbound update message error handling"; | | "Neighbor may be reset during inbound update message error handling"; |
| } | | } |
| } | | } |
| container treat-as-withdraw { | | container treat-as-withdraw { |
| presence "Indicates a treat-as-withdraw node is configured."; | | presence "Indicates a treat-as-withdraw node is configured."; |
| description | | description |
| "Treat NLRIs as withdraws during inbound update message error handling"; | | "Treat NLRIs as withdraws during inbound update message error handling"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable treat NLRIs as withdraws during inbound update message error handling"; | | "Disable treat NLRIs as withdraws during inbound update message error handling"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container graceful-maintenance { | | container graceful-maintenance { |
| presence "Indicates a graceful-maintenance node is configured."; | | presence "Indicates a graceful-maintenance node is configured."; |
| description | | description |
| "Attributes for Graceful Maintenance. This will cause neig dprefer routes from this router and choonas. This allows the router to be brourt of service gracefully."; | | "Attributes for Graceful Maintenance. This will cause neig dprefer routes from this router and choonas. This allows the router to be brourt of service gracefully."; |
| container local-preference { | | container local-preference { |
| must "local-preference-value or inheritance-disable"; | | must "local-preference-value or inheritance-disable"; |
| presence "Indicates a local-preference node is configured."; | | presence "Indicates a local-preference node is configured."; |
| description | | description |
| "local preference with which to advertise routes to ibgps. Default=No Touch"; | | "local preference with which to advertise routes to ibgps. Default=No Touch"; |
| leaf local-preference-value { | | leaf local-preference-value { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Range of values for Local Preference"; | | "Range of values for Local Preference"; |
| } | | } |
| } | | } |
| description | | description |
| "Range of values for Local Preference"; | | "Range of values for Local Preference"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local preference from being inherited from the parent"; | | "Prevent local preference from being inherited from the parent"; |
| } | | } |
| } | | } |
| container as-prepends { | | container as-prepends { |
| must "number-of-as-prepends or inheritance-disable"; | | must "number-of-as-prepends or inheritance-disable"; |
| presence "Indicates a as-prepends node is configured."; | | presence "Indicates a as-prepends node is configured."; |
| description | | description |
| "Number of times to prepend the local AS number to the AS pous. Default=0"; | | "Number of times to prepend the local AS number to the AS pous. Default=0"; |
| leaf number-of-as-prepends { | | leaf number-of-as-prepends { |
| type uint32 { | | type uint32 { |
| range "0..6" { | | range "0..6" { |
| description | | description |
| "Range of number of AS prepends"; | | "Range of number of AS prepends"; |
| } | | } |
| } | | } |
| description | | description |
| "Range of number of AS prepends"; | | "Range of number of AS prepends"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent AS prepends from being inherited from the parent"; | | "Prevent AS prepends from being inherited from the parent"; |
| } | | } |
| } | | } |
| container activate { | | container activate { |
| presence "Indicates a activate node is configured."; | | presence "Indicates a activate node is configured."; |
| description | | description |
| "Routes will be announced with the graceful maintenance | | "Routes will be announced with the graceful maintenance |
| attrhi activated either here or under router | | attrhi activated either here or under router |
| bgp atn. While activated, all routes to this | | bgp atn. While activated, all routes to this |
| neigl announced with the attributes | | neigl announced with the attributes |
| conferand all routes from this neighbor will | | conferand all routes from this neighbor will |
| be a tother neighbors with the graceful | | be a tother neighbors with the graceful |
| mainatibutes configured under those | | mainatibutes configured under those |
| neighe-shut community will be announced | | neighe-shut community will be announced |
| regaf e other attributes configured here. To | | regaf e other attributes configured here. To |
| allosh community to be announced to ebgp | | allosh community to be announced to ebgp |
| neigheend-community-gshut-ebgp configuration | | neigheend-community-gshut-ebgp configuration |
| is air. Note: changes to the attributes will | | is air. Note: changes to the attributes will |
| not ecwhile activated."; | | not ecwhile activated."; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent activate from being inherited from the parent"; | | "Prevent activate from being inherited from the parent"; |
| } | | } |
| } | | } |
| container bandwidth-aware { | | container bandwidth-aware { |
| description | | description |
| "Session interface Bandwidth based Graceful-Maintenance | | "Session interface Bandwidth based Graceful-Maintenance |
| Only restricted to eBGP directly connected, this will | | Only restricted to eBGP directly connected, this will |
| enable Graceful maintenance whenever the link effective | | enable Graceful maintenance whenever the link effective |
| bandwidth goes below a configurable low-threshold and deactivates | | bandwidth goes below a configurable low-threshold and deactivates |
| based on effective bandwidth reaches the high-threshold | | based on effective bandwidth reaches the high-threshold |
| or low-threshold if high-threshold is not configured"; | | or low-threshold if high-threshold is not configured"; |
| leaf bandwidth-threshold { | | leaf bandwidth-threshold { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Low threshold of effective bandwidth (in kbps) to enter/exit graceful-maintenance"; | | "Low threshold of effective bandwidth (in kbps) to enter/exit graceful-maintenance"; |
| } | | } |
| } | | } |
| must "not(../percentage-threshold)"; | | must "not(../percentage-threshold)"; |
| description | | description |
| "Bandwidth based threshold detection in kbps"; | | "Bandwidth based threshold detection in kbps"; |
| } | | } |
| leaf bandwidth-threshold-high { | | leaf bandwidth-threshold-high { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Optional High threshold of effective bandwidth (in kbps) to exit graceful-maintenance"; | | "Optional High threshold of effective bandwidth (in kbps) to exit graceful-maintenance"; |
| } | | } |
| } | | } |
| must "../bandwidth-threshold"; | | must "../bandwidth-threshold"; |
| description | | description |
| "Optional High threshold of effective bandwidth (in kbps) to exit graceful-maintenance"; | | "Optional High threshold of effective bandwidth (in kbps) to exit graceful-maintenance"; |
| } | | } |
| leaf percentage-threshold { | | leaf percentage-threshold { |
| type uint32 { | | type uint32 { |
| range "1..100" { | | range "1..100" { |
| description | | description |
| "Low threshold of effective bandwidth (in percentage of max bandwidth) to enter/exit graceful-maintenance"; | | "Low threshold of effective bandwidth (in percentage of max bandwidth) to enter/exit graceful-maintenance"; |
| } | | } |
| } | | } |
| must "not(../bandwidth-threshold)"; | | must "not(../bandwidth-threshold)"; |
| description | | description |
| "Threshold in Percentage of Effective Bandwidth over Maximum Bandwidth"; | | "Threshold in Percentage of Effective Bandwidth over Maximum Bandwidth"; |
| } | | } |
| leaf percentage-threshold-high { | | leaf percentage-threshold-high { |
| type uint32 { | | type uint32 { |
| range "1..100" { | | range "1..100" { |
| description | | description |
| "Optional High threshold of effective bandwidth (in percentage of max bandwidth) to exit graceful-maintenance"; | | "Optional High threshold of effective bandwidth (in percentage of max bandwidth) to exit graceful-maintenance"; |
| } | | } |
| } | | } |
| must "../percentage-threshold"; | | must "../percentage-threshold"; |
| description | | description |
| "Optional High threshold of effective bandwidth (in percentage of max bandwidth) to exit graceful-maintenance"; | | "Optional High threshold of effective bandwidth (in percentage of max bandwidth) to exit graceful-maintenance"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent bandwidth-aware from being inherited from the parent"; | | "Prevent bandwidth-aware from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| leaf remote-as { | | leaf remote-as { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| leaf remote-as-list { | | leaf remote-as-list { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "as-list name"; | | "as-list name"; |
| } | | } |
| } | | } |
| description | | description |
| "Remote as-list configuration"; | | "Remote as-list configuration"; |
| } | | } |
| container use { | | container use { |
| description | | description |
| "Inherit configuration from a group"; | | "Inherit configuration from a group"; |
| leaf session-group { | | leaf session-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Session group name"; | | "Session group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit address-family independent config from a session-group"; | | "Inherit address-family independent config from a session-group"; |
| } | | } |
| leaf neighbor-group { | | leaf neighbor-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Neighbor-group name"; | | "Neighbor-group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit configuration from a neighbor-group"; | | "Inherit configuration from a neighbor-group"; |
| } | | } |
| } | | } |
| container advertisement-interval { | | container advertisement-interval { |
| presence "Indicates a advertisement-interval node is configured."; | | presence "Indicates a advertisement-interval node is configured."; |
| description | | description |
| "Minimum interval between sending BGP routing updates"; | | "Minimum interval between sending BGP routing updates"; |
| leaf time-in-seconds { | | leaf time-in-seconds { |
| type uint32 { | | type uint32 { |
| range "0..600" { | | range "0..600" { |
| description | | description |
| "time in seconds"; | | "time in seconds"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Minimum interval between sending BGP routing updates"; | | "Minimum interval between sending BGP routing updates"; |
| } | | } |
| leaf time-in-milliseconds { | | leaf time-in-milliseconds { |
| type uint32 { | | type uint32 { |
| range "0..999" { | | range "0..999" { |
| description | | description |
| "time in milliseconds"; | | "time in milliseconds"; |
| } | | } |
| } | | } |
| description | | description |
| "time in milliseconds"; | | "time in milliseconds"; |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Up to 256 characters describing this neighbor"; | | "Up to 256 characters describing this neighbor"; |
| } | | } |
| } | | } |
| description | | description |
| "Neighbor specific description"; | | "Neighbor specific description"; |
| } | | } |
| container ignore-connected-check { | | container ignore-connected-check { |
| presence "Indicates a ignore-connected-check node is configured."; | | presence "Indicates a ignore-connected-check node is configured."; |
| description | | description |
| "Bypass the directly connected nexthop check for single-hop eBGP peering"; | | "Bypass the directly connected nexthop check for single-hop eBGP peering"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ignore-connected-check from being inherited from the parent"; | | "Prevent ignore-connected-check from being inherited from the parent"; |
| } | | } |
| } | | } |
| container ebgp-multihop { | | container ebgp-multihop { |
| presence "Indicates a ebgp-multihop node is configured."; | | presence "Indicates a ebgp-multihop node is configured."; |
| description | | description |
| "Allow EBGP neighbors not on directly connected networks"; | | "Allow EBGP neighbors not on directly connected networks"; |
| leaf maximum-hop-count { | | leaf maximum-hop-count { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "maximum hop count"; | | "maximum hop count"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "maximum hop count"; | | "maximum hop count"; |
| } | | } |
| container mpls { | | container mpls { |
| presence "Indicates a mpls node is configured."; | | presence "Indicates a mpls node is configured."; |
| description | | description |
| "Disable BGP MPLS forwarding"; | | "Disable BGP MPLS forwarding"; |
| } | | } |
| } | | } |
| container tcp { | | container tcp { |
| description | | description |
| "TCP session configuration commands"; | | "TCP session configuration commands"; |
| container mss { | | container mss { |
| must "initial-mss or inheritance-disable"; | | must "initial-mss or inheritance-disable"; |
| presence "Indicates a mss node is configured."; | | presence "Indicates a mss node is configured."; |
| description | | description |
| "Maximum Segment Size"; | | "Maximum Segment Size"; |
| leaf initial-mss { | | leaf initial-mss { |
| type uint32 { | | type uint32 { |
| range "68..10000" { | | range "68..10000" { |
| description | | description |
| "TCP initial maximum segment size"; | | "TCP initial maximum segment size"; |
| } | | } |
| } | | } |
| description | | description |
| "TCP initial maximum segment size"; | | "TCP initial maximum segment size"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent tcp mss from being inherited from the parent"; | | "Prevent tcp mss from being inherited from the parent"; |
| } | | } |
| } | | } |
| container mtu-discovery { | | container mtu-discovery { |
| presence "Indicates a mtu-discovery node is configured."; | | presence "Indicates a mtu-discovery node is configured."; |
| description | | description |
| "Enable Path MTU discovery on TCP session"; | | "Enable Path MTU discovery on TCP session"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent TCP MTU cfg from being inherited from the parent"; | | "Prevent TCP MTU cfg from being inherited from the parent"; |
| } | | } |
| } | | } |
| container ip-only-preferred { | | container ip-only-preferred { |
| presence "Indicates an ip-only-preferred node is configured."; | | presence "Indicates an ip-only-preferred node is configured."; |
| description | | description |
| "Prefer to send BGP control plane traffic on IP"; | | "Prefer to send BGP control plane traffic on IP"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates an inheritance-disable node is configured."; | | presence "Indicates an inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| } | | } |
| container bmp-activate { | | container bmp-activate { |
| description | | description |
| "Enable BMP logging for this neighbor"; | | "Enable BMP logging for this neighbor"; |
| container servers { | | container servers { |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| list server { | | list server { |
| key "server-id"; | | key "server-id"; |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| leaf server-id { | | leaf server-id { |
| type uint32 { | | type uint32 { |
| range "1..8" { | | range "1..8" { |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| } | | } |
| } | | } |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container bfd { | | container bfd { |
| description | | description |
| "Configure BFD parameters"; | | "Configure BFD parameters"; |
| container fast-detect { | | container fast-detect { |
| must "not(strict-mode and inheritance-disable)"; | | must "not(strict-mode and inheritance-disable)"; |
| presence "Indicates a fast-detect node is configured."; | | presence "Indicates a fast-detect node is configured."; |
| description | | description |
| "Enable Fast detection"; | | "Enable Fast detection"; |
| container strict-mode { | | container strict-mode { |
| presence "Indicates a strict-mode node is configured."; | | presence "Indicates a strict-mode node is configured."; |
| description | | description |
| "Hold down neighbor session until BFD session is up"; | | "Hold down neighbor session until BFD session is up"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Prevent bfd settings from being inherited from the parent"; | | "Prevent bfd settings from being inherited from the parent"; |
| } | | } |
| } | | } |
| leaf minimum-interval { | | leaf minimum-interval { |
| type uint32 { | | type uint32 { |
| range "3..30000" { | | range "3..30000" { |
| description | | description |
| "hello interval in milli-seconds"; | | "hello interval in milli-seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Hello interval"; | | "Hello interval"; |
| } | | } |
| leaf multiplier { | | leaf multiplier { |
| type uint32 { | | type uint32 { |
| range "2..16" { | | range "2..16" { |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| container keychain { | | container keychain { |
| must "name or inheritance-disable"; | | must "name or inheritance-disable"; |
| presence "Indicates a keychain node is configured."; | | presence "Indicates a keychain node is configured."; |
| description | | description |
| "Set keychain based authentication"; | | "Set keychain based authentication"; |
| leaf name { | | leaf name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent keychain from being inherited from parent"; | | "Prevent keychain from being inherited from parent"; |
| } | | } |
| } | | } |
| container local-as { | | container local-as { |
| must "as-number or inheritance-disable"; | | must "as-number or inheritance-disable"; |
| presence "Indicates a local-as node is configured."; | | presence "Indicates a local-as node is configured."; |
| description | | description |
| "Specify local AS number"; | | "Specify local AS number"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| container no-prepend { | | container no-prepend { |
| presence "Indicates a no-prepend node is configured."; | | presence "Indicates a no-prepend node is configured."; |
| description | | description |
| "Do not prepend local AS to announcements from this neighbor"; | | "Do not prepend local AS to announcements from this neighbor"; |
| container replace-as { | | container replace-as { |
| presence "Indicates a replace-as node is configured."; | | presence "Indicates a replace-as node is configured."; |
| description | | description |
| "Prepend only local AS to announcements to this neighbor"; | | "Prepend only local AS to announcements to this neighbor"; |
| container dual-as { | | container dual-as { |
| presence "Indicates a dual-as node is configured."; | | presence "Indicates a dual-as node is configured."; |
| description | | description |
| "Dual-AS mode"; | | "Dual-AS mode"; |
| } | | } |
| } | | } |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local AS from being inherited from parent"; | | "Prevent local AS from being inherited from parent"; |
| } | | } |
| } | | } |
| container password { | | container password { |
| must "encrypted or inheritance-disable"; | | must "encrypted or inheritance-disable"; |
| presence "Indicates a password node is configured."; | | presence "Indicates a password node is configured."; |
| description | | description |
| "Set a password"; | | "Set a password"; |
| leaf encrypted { | | leaf encrypted { |
| type xr:Proprietary-password; | | type xr:Proprietary-password; |
| description | | description |
| "Specifies an ENCRYPTED password will follow"; | | "Specifies an ENCRYPTED password will follow"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent password from being inherited from parent"; | | "Prevent password from being inherited from parent"; |
| } | | } |
| } | | } |
| container receive-buffer-size { | | container receive-buffer-size { |
| presence "Indicates a receive-buffer-size node is configured."; | | presence "Indicates a receive-buffer-size node is configured."; |
| description | | description |
| "Set socket and BGP receive buffer size"; | | "Set socket and BGP receive buffer size"; |
| leaf receive-socket-buffer-size { | | leaf receive-socket-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "Receive socket buffer size in bytes"; | | "Receive socket buffer size in bytes"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Set socket and BGP receive buffer size"; | | "Set socket and BGP receive buffer size"; |
| } | | } |
| leaf bgp-read-buffer-size { | | leaf bgp-read-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| container send-buffer-size { | | container send-buffer-size { |
| presence "Indicates a send-buffer-size node is configured."; | | presence "Indicates a send-buffer-size node is configured."; |
| description | | description |
| "Set socket and BGP send buffer size"; | | "Set socket and BGP send buffer size"; |
| leaf send-socket-buffer-size { | | leaf send-socket-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "Send socket buffer size in bytes"; | | "Send socket buffer size in bytes"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Set socket and BGP send buffer size"; | | "Set socket and BGP send buffer size"; |
| } | | } |
| leaf bgp-write-buffer-size { | | leaf bgp-write-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| } | | } |
| container shutdown { | | container shutdown { |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Administratively shut down this neighbor"; | | "Administratively shut down this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent this neighbor being shutdown, even if its parent is"; | | "Prevent this neighbor being shutdown, even if its parent is"; |
| } | | } |
| } | | } |
| container fast-fallover { | | container fast-fallover { |
| presence "Indicates a fast-fallover node is configured."; | | presence "Indicates a fast-fallover node is configured."; |
| description | | description |
| "Force neighbor to be directly connected. Bring neighbor down if its interface goes down"; | | "Force neighbor to be directly connected. Bring neighbor down if its interface goes down"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent this neighbor from inheriting this config from a group it is in"; | | "Prevent this neighbor from inheriting this config from a group it is in"; |
| } | | } |
| } | | } |
| container timers { | | container timers { |
| presence "Indicates a timers node is configured."; | | presence "Indicates a timers node is configured."; |
| description | | description |
| "BGP per neighbor timers"; | | "BGP per neighbor timers"; |
| leaf keepalive-interval { | | leaf keepalive-interval { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "Keepalive interval"; | | "Keepalive interval"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "BGP timers"; | | "BGP timers"; |
| } | | } |
| leaf holdtime { | | leaf holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Holdtime."; | | "Holdtime."; |
| } | | } |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Holdtime. Set 0 to disable keepalives/hold time."; | | "Holdtime. Set 0 to disable keepalives/hold time."; |
| } | | } |
| leaf minimum-acceptable-holdtime { | | leaf minimum-acceptable-holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Minimum acceptable holdtime from neighbor."; | | "Minimum acceptable holdtime from neighbor."; |
| } | | } |
| } | | } |
| } | | } |
| description | | description |
| "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; | | "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| container local { | | container local { |
| description | | description |
| "Configure local parameter"; | | "Configure local parameter"; |
| container address { | | container address { |
| must "ip-address or inheritance-disable"; | | must "ip-address or inheritance-disable"; |
| presence "Indicates a address node is configured."; | | presence "Indicates a address node is configured."; |
| description | | description |
| "use configured local address for bgp peering"; | | "use configured local address for bgp peering"; |
| leaf ip-address { | | leaf ip-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IPv4 address"; | | "IPv4 address"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local address from being inherited from parent"; | | "Prevent local address from being inherited from parent"; |
| } | | } |
| } | | } |
| } | | } |
| container log { | | container log { |
| description | | description |
| "Logging update messages per neighbor"; | | "Logging update messages per neighbor"; |
| container message { | | container message { |
| description | | description |
| "Logging update/notification messages per neighbor"; | | "Logging update/notification messages per neighbor"; |
| container in { | | container in { |
| description | | description |
| "Inbound log messages"; | | "Inbound log messages"; |
| leaf message-log-buffer-size { | | leaf message-log-buffer-size { |
| type uint32 { | | type uint32 { |
| range "1..500" { | | range "1..500" { |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| } | | } |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable inbound message logging"; | | "Disable inbound message logging"; |
| } | | } |
| container inheritance-diable { | | container inheritance-diable { |
| presence "Indicates a inheritance-diable node is configured."; | | presence "Indicates a inheritance-diable node is configured."; |
| description | | description |
| "Prevents the msg log from being inherited from the parent"; | | "Prevents the msg log from being inherited from the parent"; |
| } | | } |
| } | | } |
| container out { | | container out { |
| description | | description |
| "Outbound log messages"; | | "Outbound log messages"; |
| leaf message-log-buffer-size { | | leaf message-log-buffer-size { |
| type uint32 { | | type uint32 { |
| range "1..500" { | | range "1..500" { |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| } | | } |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable outbound message logging"; | | "Disable outbound message logging"; |
| } | | } |
| container inheritance-diable { | | container inheritance-diable { |
| presence "Indicates a inheritance-diable node is configured."; | | presence "Indicates a inheritance-diable node is configured."; |
| description | | description |
| "Prevents the msg log from being inherited from the parent"; | | "Prevents the msg log from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container neighbor { | | container neighbor { |
| description | | description |
| "Log neighbor state info"; | | "Log neighbor state info"; |
| container changes { | | container changes { |
| description | | description |
| "Log neighbor state changes"; | | "Log neighbor state changes"; |
| container detail { | | container detail { |
| must "not(../disable or ../inheritance-disable)"; | | must "not(../disable or ../inheritance-disable)"; |
| presence "Indicates a detail node is configured."; | | presence "Indicates a detail node is configured."; |
| description | | description |
| "detail"; | | "detail"; |
| } | | } |
| container disable { | | container disable { |
| must "not(../detail or ../inheritance-disable)"; | | must "not(../detail or ../inheritance-disable)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable"; | | "disable"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../detail or ../disable)"; | | must "not(../detail or ../disable)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevents the log state changes from being inherited from the parent"; | | "Prevents the log state changes from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf update-source { | | leaf update-source { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Source of routing updates"; | | "Source of routing updates"; |
| } | | } |
| container local-address-subnet { | | container local-address-subnet { |
| description | | description |
| "Local address subnet of routing updates"; | | "Local address subnet of routing updates"; |
| leaf ip-address { | | leaf ip-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IP address and mask length"; | | "IP address and mask length"; |
| } | | } |
| leaf mask-length { | | leaf mask-length { |
| type uint32 { | | type uint32 { |
| range "0..128" { | | range "0..128" { |
| description | | description |
| "IP address mask length"; | | "IP address mask length"; |
| } | | } |
| } | | } |
| description | | description |
| "IP address and mask length"; | | "IP address and mask length"; |
| } | | } |
| } | | } |
| container dmz-link-bandwidth { | | container dmz-link-bandwidth { |
| presence "Indicates a dmz-link-bandwidth node is configured."; | | presence "Indicates a dmz-link-bandwidth node is configured."; |
| description | | description |
| "Propagate the DMZ link bandwidth"; | | "Propagate the DMZ link bandwidth"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent dmz-link-bandwidth from being inherited from the parent"; | | "Prevent dmz-link-bandwidth from being inherited from the parent"; |
| } | | } |
| } | | } |
| container ebgp-recv-extcommunity-dmz { | | container ebgp-recv-extcommunity-dmz { |
| presence "Indicates a ebgp-recv-extcommunity-dmz node is configured."; | | presence "Indicates a ebgp-recv-extcommunity-dmz node is configured."; |
| description | | description |
| "Receive extcommunity dmz link bandwidth from ebgp neighbor"; | | "Receive extcommunity dmz link bandwidth from ebgp neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ebgp-send-community-dmz from being inherited from parent"; | | "Prevent ebgp-send-community-dmz from being inherited from parent"; |
| } | | } |
| } | | } |
| container ebgp-send-extcommunity-dmz { | | container ebgp-send-extcommunity-dmz { |
| must "not(cumulative and inheritance-disable)"; | | must "not(cumulative and inheritance-disable)"; |
| presence "Indicates a ebgp-send-extcommunity-dmz node is configured."; | | presence "Indicates a ebgp-send-extcommunity-dmz node is configured."; |
| description | | description |
| "Send extended community dmz link bandwidth to ebgp neighbor"; | | "Send extended community dmz link bandwidth to ebgp neighbor"; |
| container cumulative { | | container cumulative { |
| presence "Indicates a cumulative node is configured."; | | presence "Indicates a cumulative node is configured."; |
| description | | description |
| "Send cumulative community dmz link bandwidth of all multipaths to ebgp neighbor"; | | "Send cumulative community dmz link bandwidth of all multipaths to ebgp neighbor"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ebgp-send-extcommunity-dmz from being inherited from parent"; | | "Prevent ebgp-send-extcommunity-dmz from being inherited from parent"; |
| } | | } |
| } | | } |
| container ttl-security { | | container ttl-security { |
| presence "Indicates a ttl-security node is configured."; | | presence "Indicates a ttl-security node is configured."; |
| description | | description |
| "Enable EBGP TTL security"; | | "Enable EBGP TTL security"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ttl-security from being inherited from the parent"; | | "Prevent ttl-security from being inherited from the parent"; |
| } | | } |
| } | | } |
| container session-open-mode { | | container session-open-mode { |
| description | | description |
| "Establish BGP session using this TCP open mode"; | | "Establish BGP session using this TCP open mode"; |
| container active-only { | | container active-only { |
| must "not(../passive-only or ../both)"; | | must "not(../passive-only or ../both)"; |
| presence "Indicates a active-only node is configured."; | | presence "Indicates a active-only node is configured."; |
| description | | description |
| "Active only"; | | "Active only"; |
| } | | } |
| container passive-only { | | container passive-only { |
| must "not(../active-only or ../both)"; | | must "not(../active-only or ../both)"; |
| presence "Indicates a passive-only node is configured."; | | presence "Indicates a passive-only node is configured."; |
| description | | description |
| "Passive only"; | | "Passive only"; |
| } | | } |
| container both { | | container both { |
| must "not(../active-only or ../passive-only)"; | | must "not(../active-only or ../passive-only)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Prevent session-open-mode being inherited from the parent"; | | "Prevent session-open-mode being inherited from the parent"; |
| } | | } |
| } | | } |
| leaf dscp { | | leaf dscp { |
| type enumeration { | | type enumeration { |
| enum "default" { | | enum "default" { |
| value 0; | | value 0; |
| description | | description |
| "Set packets with default dscp (000000)"; | | "Set packets with default dscp (000000)"; |
| } | | } |
| enum "cs1" { | | enum "cs1" { |
| value 8; | | value 8; |
| description | | description |
| "Set packets with CS1(precedence 1) dscp (001000)"; | | "Set packets with CS1(precedence 1) dscp (001000)"; |
| } | | } |
| enum "af11" { | | enum "af11" { |
| value 10; | | value 10; |
| description | | description |
| "Set packets with AF11 dscp (001010)"; | | "Set packets with AF11 dscp (001010)"; |
| } | | } |
| enum "af12" { | | enum "af12" { |
| value 12; | | value 12; |
| description | | description |
| "Set packets with AF12 dscp (001100)"; | | "Set packets with AF12 dscp (001100)"; |
| } | | } |
| enum "af13" { | | enum "af13" { |
| value 14; | | value 14; |
| description | | description |
| "Set packets with AF13 dscp (001110)"; | | "Set packets with AF13 dscp (001110)"; |
| } | | } |
| enum "cs2" { | | enum "cs2" { |
| value 16; | | value 16; |
| description | | description |
| "Set packets with CS2(precedence 2) dscp (010000)"; | | "Set packets with CS2(precedence 2) dscp (010000)"; |
| } | | } |
| enum "af21" { | | enum "af21" { |
| value 18; | | value 18; |
| description | | description |
| "Set packets with AF21 dscp (010010)"; | | "Set packets with AF21 dscp (010010)"; |
| } | | } |
| enum "af22" { | | enum "af22" { |
| value 20; | | value 20; |
| description | | description |
| "Set packets with AF22 dscp (010100)"; | | "Set packets with AF22 dscp (010100)"; |
| } | | } |
| enum "af23" { | | enum "af23" { |
| value 22; | | value 22; |
| description | | description |
| "Set packets with AF23 dscp (010110)"; | | "Set packets with AF23 dscp (010110)"; |
| } | | } |
| enum "cs3" { | | enum "cs3" { |
| value 24; | | value 24; |
| description | | description |
| "Set packets with CS3(precedence 3) dscp (011000)"; | | "Set packets with CS3(precedence 3) dscp (011000)"; |
| } | | } |
| enum "af31" { | | enum "af31" { |
| value 26; | | value 26; |
| description | | description |
| "Set packets with AF31 dscp (011010)"; | | "Set packets with AF31 dscp (011010)"; |
| } | | } |
| enum "af32" { | | enum "af32" { |
| value 28; | | value 28; |
| description | | description |
| "Set packets with AF32 dscp (011100)"; | | "Set packets with AF32 dscp (011100)"; |
| } | | } |
| enum "af33" { | | enum "af33" { |
| value 30; | | value 30; |
| description | | description |
| "Set packets with AF33 dscp (011110)"; | | "Set packets with AF33 dscp (011110)"; |
| } | | } |
| enum "cs4" { | | enum "cs4" { |
| value 32; | | value 32; |
| description | | description |
| "Set packets with CS4(precedence 4) dscp (100000)"; | | "Set packets with CS4(precedence 4) dscp (100000)"; |
| } | | } |
| enum "af41" { | | enum "af41" { |
| value 34; | | value 34; |
| description | | description |
| "Set packets with AF41 dscp (100010)"; | | "Set packets with AF41 dscp (100010)"; |
| } | | } |
| enum "af42" { | | enum "af42" { |
| value 36; | | value 36; |
| description | | description |
| "Set packets with AF42 dscp (100100)"; | | "Set packets with AF42 dscp (100100)"; |
| } | | } |
| enum "af43" { | | enum "af43" { |
| value 38; | | value 38; |
| description | | description |
| "Set packets with AF43 dscp (100110)"; | | "Set packets with AF43 dscp (100110)"; |
| } | | } |
| enum "cs5" { | | enum "cs5" { |
| value 40; | | value 40; |
| description | | description |
| "Set packets with CS5(precedence 5) dscp (101000)"; | | "Set packets with CS5(precedence 5) dscp (101000)"; |
| } | | } |
| enum "ef" { | | enum "ef" { |
| value 46; | | value 46; |
| description | | description |
| "Set packets with EF dscp (101110)"; | | "Set packets with EF dscp (101110)"; |
| } | | } |
| enum "cs6" { | | enum "cs6" { |
| value 48; | | value 48; |
| description | | description |
| "Set packets with CS6(precedence 6) dscp (110000)"; | | "Set packets with CS6(precedence 6) dscp (110000)"; |
| } | | } |
| enum "cs7" { | | enum "cs7" { |
| value 56; | | value 56; |
| description | | description |
| "Set packets with CS7(precedence 7) dscp (111000)"; | | "Set packets with CS7(precedence 7) dscp (111000)"; |
| } | | } |
| } | | } |
| description | | description |
| "Set IP DSCP (DiffServ CodePoint)"; | | "Set IP DSCP (DiffServ CodePoint)"; |
| } | | } |
| leaf precedence { | | leaf precedence { |
| type enumeration { | | type enumeration { |
| enum "routine" { | | enum "routine" { |
| value 0; | | value 0; |
| description | | description |
| "Set packets with routine precedence (0)"; | | "Set packets with routine precedence (0)"; |
| } | | } |
| enum "priority" { | | enum "priority" { |
| value 1; | | value 1; |
| description | | description |
| "Set packets with priority precedence (1)"; | | "Set packets with priority precedence (1)"; |
| } | | } |
| enum "immediate" { | | enum "immediate" { |
| value 2; | | value 2; |
| description | | description |
| "Set packets with immediate precedence (2)"; | | "Set packets with immediate precedence (2)"; |
| } | | } |
| enum "flash" { | | enum "flash" { |
| value 3; | | value 3; |
| description | | description |
| "Set packets with flash precedence (3)"; | | "Set packets with flash precedence (3)"; |
| } | | } |
| enum "flash-override" { | | enum "flash-override" { |
| value 4; | | value 4; |
| description | | description |
| "Set packets with flash override precedence (4)"; | | "Set packets with flash override precedence (4)"; |
| } | | } |
| enum "critical" { | | enum "critical" { |
| value 5; | | value 5; |
| description | | description |
| "Set packets with critical precedence (5)"; | | "Set packets with critical precedence (5)"; |
| } | | } |
| enum "internet" { | | enum "internet" { |
| value 6; | | value 6; |
| description | | description |
| "Set packets with internetwork control precedence (6)"; | | "Set packets with internetwork control precedence (6)"; |
| } | | } |
| enum "network" { | | enum "network" { |
| value 7; | | value 7; |
| description | | description |
| "Set packets with network control precedence (7)"; | | "Set packets with network control precedence (7)"; |
| } | | } |
| } | | } |
| description | | description |
| "Set precedence"; | | "Set precedence"; |
| } | | } |
| container capability { | | container capability { |
| description | | description |
| "Advertise capability to the peer"; | | "Advertise capability to the peer"; |
| container suppress { | | container suppress { |
| description | | description |
| "Suppress advertising capability to the peer "; | | "Suppress advertising capability to the peer "; |
| container four-byte-as { | | container four-byte-as { |
| presence "Indicates a four-byte-as node is configured."; | | presence "Indicates a four-byte-as node is configured."; |
| description | | description |
| "4-byte-as capability"; | | "4-byte-as capability"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent capability suppress 4-type-as being inherited from the parent"; | | "Prevent capability suppress 4-type-as being inherited from the parent"; |
| } | | } |
| } | | } |
| container all { | | container all { |
| presence "Indicates a all node is configured."; | | presence "Indicates a all node is configured."; |
| description | | description |
| "All capabilities"; | | "All capabilities"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| container extended-nexthop-encoding { | | container extended-nexthop-encoding { |
| presence "Indicates a extended-nexthop-encoding node is configured."; | | presence "Indicates a extended-nexthop-encoding node is configured."; |
| description | | description |
| "Extended-nexthop-encoding capabilities (IETF RFC 5549)"; | | "Extended-nexthop-encoding capabilities (IETF RFC 5549)"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| } | | } |
| container additional-paths { | | container additional-paths { |
| description | | description |
| "Additional paths capability"; | | "Additional paths capability"; |
| container send { | | container send { |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Additional paths Send capability"; | | "Additional paths Send capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise additional paths Send capability"; | | "Do not advertise additional paths Send capability"; |
| } | | } |
| } | | } |
| container receive { | | container receive { |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Additional paths Receive capability"; | | "Additional paths Receive capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise additional paths Receive capability"; | | "Do not advertise additional paths Receive capability"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container graceful-restart { | | container graceful-restart { |
| presence "Indicates a graceful-restart node is configured."; | | presence "Indicates a graceful-restart node is configured."; |
| description | | description |
| "Enable graceful restart support for this neighbor"; | | "Enable graceful restart support for this neighbor"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable graceful restart support for this neighbor"; | | "Disable graceful restart support for this neighbor"; |
| } | | } |
| leaf restart-time { | | leaf restart-time { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart time advertised to the neighbor"; | | "Restart time advertised to the neighbor"; |
| } | | } |
| leaf stalepath-time { | | leaf stalepath-time { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum time to wait for restart of GR capable peer"; | | "Maximum time to wait for restart of GR capable peer"; |
| } | | } |
| } | | } |
| container enforce-first-as { | | container enforce-first-as { |
| presence "Indicates a enforce-first-as node is configured."; | | presence "Indicates a enforce-first-as node is configured."; |
| description | | description |
| "Enforce the first AS for EBGP routes"; | | "Enforce the first AS for EBGP routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not enforce the first AS for EBGP routes"; | | "Do not enforce the first AS for EBGP routes"; |
| } | | } |
| } | | } |
| container cluster-id { | | container cluster-id { |
| description | | description |
| "Enter cluster id for this neighbor"; | | "Enter cluster id for this neighbor"; |
| leaf route-reflector-cluster-id { | | leaf route-reflector-cluster-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Route-Reflector Cluster-id as 32 bit quantity"; | | "Route-Reflector Cluster-id as 32 bit quantity"; |
| } | | } |
| } | | } |
| description | | description |
| "Route-Reflector Cluster-id as 32 bit quantity"; | | "Route-Reflector Cluster-id as 32 bit quantity"; |
| } | | } |
| leaf ip-address { | | leaf ip-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "Route-Reflector Cluster-id in IP address format"; | | "Route-Reflector Cluster-id in IP address format"; |
| } | | } |
| } | | } |
| leaf maximum-peers { | | leaf maximum-peers { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Maximum number of peers"; | | "Maximum number of peers"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum dynamic neighbors"; | | "Maximum dynamic neighbors"; |
| } | | } |
| leaf idle-watch-time { | | leaf idle-watch-time { |
| type uint32 { | | type uint32 { |
| range "30..1800" { | | range "30..1800" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum time to wait for deletion of IDLE state dynamic peer"; | | "Maximum time to wait for deletion of IDLE state dynamic peer"; |
| } | | } |
| container egress-engineering { | | container egress-engineering { |
| presence "Indicates a egress-engineering node is configured."; | | presence "Indicates a egress-engineering node is configured."; |
| description | | description |
| "Enable egress peer engineering for this neighbor"; | | "Enable egress peer engineering for this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit egress-engineering from the parent"; | | "Do not inherit egress-engineering from the parent"; |
| } | | } |
| } | | } |
| container peer-sets { | | container peer-sets { |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| list peer-set { | | list peer-set { |
| key "peer-set-id"; | | key "peer-set-id"; |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| leaf peer-set-id { | | leaf peer-set-id { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Identity value of peer-set"; | | "Identity value of peer-set"; |
| } | | } |
| } | | } |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| } | | } |
| } | | } |
| } | | } |
| container peer-node-sid { | | container peer-node-sid { |
| description | | description |
| "Assign this neighbor a manual SID for egress peer engineering"; | | "Assign this neighbor a manual SID for egress peer engineering"; |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..1033575" { | | range "0..1033575" { |
| description | | description |
| "Segment Index to be assigned to this peer. The index will be off SRLB | | "Segment Index to be assigned to this peer. The index will be off SRLB |
| Note: Thmaximum index configurable in dynaminc SRLB range. | | Note: Thmaximum index configurable in dynaminc SRLB range. |
| Since SRa dynamic range, actual maximum index can vary. | | Since SRa dynamic range, actual maximum index can vary. |
| So pleasthe currently configured SRLB range"; | | So pleasthe currently configured SRLB range"; |
| } | | } |
| } | | } |
| description | | description |
| "Segment Index value which is offset of SRLB"; | | "Segment Index value which is offset of SRLB"; |
| } | | } |
| } | | } |
| container ao { | | container ao { |
| description | | description |
| "Enable Authentiation Option"; | | "Enable Authentiation Option"; |
| leaf key-chain-name { | | leaf key-chain-name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| } | | } |
| must "not(../inheritance-disable) and (../include-tcp-options/enable or ../include-tcp-options/disable)"; | | must "not(../inheritance-disable) and (../include-tcp-options/enable or ../include-tcp-options/disable)"; |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| container include-tcp-options { | | container include-tcp-options { |
| description | | description |
| "Include/Exclude other TCP options in the header"; | | "Include/Exclude other TCP options in the header"; |
| container enable { | | container enable { |
| must "not(../disable or ../../inheritance-disable)"; | | must "not(../disable or ../../inheritance-disable)"; |
| presence "Indicates a enable node is configured."; | | presence "Indicates a enable node is configured."; |
| description | | description |
| "Include other TCP options in the header"; | | "Include other TCP options in the header"; |
| } | | } |
| container disable { | | container disable { |
| must "not(../enable or ../../inheritance-disable)"; | | must "not(../enable or ../../inheritance-disable)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Exclude other TCP options in the header"; | | "Exclude other TCP options in the header"; |
| } | | } |
| container accept-ao-mismatch-connection { | | container accept-ao-mismatch-connection { |
| must "../enable or ../disable"; | | must "../enable or ../disable"; |
| presence "Indicates a accept-ao-mismatch-connection node is configured."; | | presence "Indicates a accept-ao-mismatch-connection node is configured."; |
| description | | description |
| "Accept new connection even if AO mismatched"; | | "Accept new connection even if AO mismatched"; |
| } | | } |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../key-chain-name)"; | | must "not(../key-chain-name)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent keychain from being inherited from parent"; | | "Prevent keychain from being inherited from parent"; |
| } | | } |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validation { | | container validation { |
| description | | description |
| "BGP origin-AS validation knobs"; | | "BGP origin-AS validation knobs"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable RPKI origin-AS validation"; | | "Disable RPKI origin-AS validation"; |
| } | | } |
| } | | } |
| } | | } |
| container bestpath { | | container bestpath { |
| description | | description |
| "Change default route selection criteria"; | | "Change default route selection criteria"; |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container allow { | | container allow { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container invalid { | | container invalid { |
| presence "Indicates a invalid node is configured."; | | presence "Indicates a invalid node is configured."; |
| description | | description |
| "BGP bestpath selection will allow 'invalid' origin-AS"; | | "BGP bestpath selection will allow 'invalid' origin-AS"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf maximum-prefix-restart-time { | | leaf maximum-prefix-restart-time { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Maximum prefix restart time (seconds)"; | | "Maximum prefix restart time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart timer interval"; | | "Restart timer interval"; |
| } | | } |
| } | | } |
| list neighbor-range { | | list neighbor-range { |
| key "neighbor-address prefix-length"; | | key "neighbor-address prefix-length"; |
| description | | description |
| "Neighbor address"; | | "Neighbor address"; |
| leaf neighbor-address { | | leaf neighbor-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "Neighbor address"; | | "Neighbor address"; |
| } | | } |
| leaf prefix-length { | | leaf prefix-length { |
| type uint32 { | | type uint32 { |
| range "0..127"; | | range "0..127"; |
| } | | } |
| description | | description |
| "Prefix length"; | | "Prefix length"; |
| } | | } |
| container address-families { | | container address-families { |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| list address-family { | | list address-family { |
| key "af-name"; | | key "af-name"; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| leaf af-name { | | leaf af-name { |
| type Bgp-address-family; | | type Bgp-address-family; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| } | | } |
| container use { | | container use { |
| description | | description |
| "Inherit configuration for this address-family from a group"; | | "Inherit configuration for this address-family from a group"; |
| leaf af-group { | | leaf af-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "AF group name"; | | "AF group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit configuration for this address-family from an af-group"; | | "Inherit configuration for this address-family from an af-group"; |
| } | | } |
| } | | } |
| container capability { | | container capability { |
| description | | description |
| "Advertise capability to the peer"; | | "Advertise capability to the peer"; |
| container orf { | | container orf { |
| description | | description |
| "Advertise ORF capability to the peer"; | | "Advertise ORF capability to the peer"; |
| container prefix { | | container prefix { |
| description | | description |
| "Advertise address prefix ORF capability to this neighbor"; | | "Advertise address prefix ORF capability to this neighbor"; |
| container receive { | | container receive { |
| must "not(../send or ../both or ../none)"; | | must "not(../send or ../both or ../none)"; |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Capability to RECEIVE the ORF from this neighbor"; | | "Capability to RECEIVE the ORF from this neighbor"; |
| } | | } |
| container send { | | container send { |
| must "not(../receive or ../both or ../none)"; | | must "not(../receive or ../both or ../none)"; |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Capability to SEND the ORF to this neighbor"; | | "Capability to SEND the ORF to this neighbor"; |
| } | | } |
| container both { | | container both { |
| must "not(../receive or ../send or ../none)"; | | must "not(../receive or ../send or ../none)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Capability to RECEIVE and SEND the ORF from/to this neighbor"; | | "Capability to RECEIVE and SEND the ORF from/to this neighbor"; |
| } | | } |
| container none { | | container none { |
| must "not(../receive or ../send or ../both)"; | | must "not(../receive or ../send or ../both)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No capability to RECEIVE or SEND the ORF from/to this neighbor"; | | "No capability to RECEIVE or SEND the ORF from/to this neighbor"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container default-originate { | | container default-originate { |
| presence "Indicates a default-originate node is configured."; | | presence "Indicates a default-originate node is configured."; |
| description | | description |
| "Originate default route to this neighbor"; | | "Originate default route to this neighbor"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy to specify criteria to originate default"; | | "Route policy to specify criteria to originate default"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../route-policy)"; | | must "not(../route-policy)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent default-originate being inherited from a parent group"; | | "Prevent default-originate being inherited from a parent group"; |
| } | | } |
| } | | } |
| container maximum-prefix { | | container maximum-prefix { |
| presence "Indicates a maximum-prefix node is configured."; | | presence "Indicates a maximum-prefix node is configured."; |
| description | | description |
| "Maximum number of prefixes to accept from this peer"; | | "Maximum number of prefixes to accept from this peer"; |
| leaf prefix-limit { | | leaf prefix-limit { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "maximum no. of prefix limit"; | | "maximum no. of prefix limit"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Maximum number of prefixes to accept from this peer"; | | "Maximum number of prefixes to accept from this peer"; |
| } | | } |
| leaf threshold { | | leaf threshold { |
| type uint32 { | | type uint32 { |
| range "1..100" { | | range "1..100" { |
| description | | description |
| "Threshold value (%) at which to generate a warning msg"; | | "Threshold value (%) at which to generate a warning msg"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Threshold value (%) at which to generate a warning msg"; | | "Threshold value (%) at which to generate a warning msg"; |
| } | | } |
| container warning-only { | | container warning-only { |
| presence "Indicates a warning-only node is configured."; | | presence "Indicates a warning-only node is configured."; |
| description | | description |
| "Only give warning message when limit is exceeded"; | | "Only give warning message when limit is exceeded"; |
| } | | } |
| leaf restart { | | leaf restart { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Time interval (min) after which peering session will be reestablished"; | | "Time interval (min) after which peering session will be reestablished"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart time interval"; | | "Restart time interval"; |
| } | | } |
| container discard-extra-paths { | | container discard-extra-paths { |
| presence "Indicates a discard-extra-paths node is configured."; | | presence "Indicates a discard-extra-paths node is configured."; |
| description | | description |
| "Discard extra paths when limit is exceeded"; | | "Discard extra paths when limit is exceeded"; |
| } | | } |
| } | | } |
| leaf optimal-route-reflection { | | leaf optimal-route-reflection { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure optiomal-route-reflection for this neighbor"; | | "Configure optiomal-route-reflection for this neighbor"; |
| } | | } |
| container next-hop-self { | | container next-hop-self { |
| presence "Indicates a next-hop-self node is configured."; | | presence "Indicates a next-hop-self node is configured."; |
| description | | description |
| "Disable the next hop calculation for this neighbor"; | | "Disable the next hop calculation for this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent next-hop-self from being inherited from the parent"; | | "Prevent next-hop-self from being inherited from the parent"; |
| } | | } |
| } | | } |
| container next-hop-unchanged { | | container next-hop-unchanged { |
| presence "Indicates a next-hop-unchanged node is configured."; | | presence "Indicates a next-hop-unchanged node is configured."; |
| description | | description |
| "Do not overwrite next hop before advertising to eBGP peers"; | | "Do not overwrite next hop before advertising to eBGP peers"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent next-hop-unchanged from being inherited from the parent"; | | "Prevent next-hop-unchanged from being inherited from the parent"; |
| } | | } |
| } | | } |
| container next-hop-unchanged-multipath { | | container next-hop-unchanged-multipath { |
| presence "Indicates a next-hop-unchanged-multipath node is configured."; | | presence "Indicates a next-hop-unchanged-multipath node is configured."; |
| description | | description |
| "Do not overwrite nexthop before advertising multipaths"; | | "Do not overwrite nexthop before advertising multipaths"; |
| } | | } |
| container slow-peer { | | container slow-peer { |
| description | | description |
| "Configure this neighbor as slow-peer"; | | "Configure this neighbor as slow-peer"; |
| container static { | | container static { |
| must "not(../dynamic)"; | | must "not(../dynamic)"; |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Configure this neighbor as static slow-peer"; | | "Configure this neighbor as static slow-peer"; |
| } | | } |
| container dynamic { | | container dynamic { |
| must "not(../static)"; | | must "not(../static)"; |
| presence "Indicates a dynamic node is configured."; | | presence "Indicates a dynamic node is configured."; |
| description | | description |
| "Configure this neighbor as dynamic slow-peer"; | | "Configure this neighbor as dynamic slow-peer"; |
| leaf threshold { | | leaf threshold { |
| type uint16 { | | type uint16 { |
| range "120..3600" { | | range "120..3600" { |
| description | | description |
| "Threshold (in seconds) to detect this neighbor as slow-peer"; | | "Threshold (in seconds) to detect this neighbor as slow-peer"; |
| } | | } |
| } | | } |
| description | | description |
| "Threshold (in seconds) to detect this neighbor as slow-peer"; | | "Threshold (in seconds) to detect this neighbor as slow-peer"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable dynamic slow-peer"; | | "Disable dynamic slow-peer"; |
| } | | } |
| } | | } |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validation { | | container validation { |
| description | | description |
| "BGP origin-AS validation knobs"; | | "BGP origin-AS validation knobs"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable RPKI origin-AS validation"; | | "Disable RPKI origin-AS validation"; |
| } | | } |
| } | | } |
| } | | } |
| container bestpath { | | container bestpath { |
| description | | description |
| "Change default route selection criteria"; | | "Change default route selection criteria"; |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container allow { | | container allow { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container invalid { | | container invalid { |
| presence "Indicates a invalid node is configured."; | | presence "Indicates a invalid node is configured."; |
| description | | description |
| "BGP bestpath selection will allow 'invalid' origin-AS"; | | "BGP bestpath selection will allow 'invalid' origin-AS"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy"; | | "Apply route policy"; |
| leaf in { | | leaf in { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Apply route policy to inbound routes"; | | "Apply route policy to inbound routes"; |
| } | | } |
| leaf out { | | leaf out { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Apply route policy to outbound routes"; | | "Apply route policy to outbound routes"; |
| } | | } |
| container retention { | | container retention { |
| description | | description |
| "Apply retention policy to inbound routes"; | | "Apply retention policy to inbound routes"; |
| leaf route-policy-name { | | leaf route-policy-name { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| must "../retention-time"; | | must "../retention-time"; |
| description | | description |
| "Apply retention policy to inbound routes"; | | "Apply retention policy to inbound routes"; |
| } | | } |
| leaf retention-time { | | leaf retention-time { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| must "../route-policy-name"; | | must "../route-policy-name"; |
| description | | description |
| "Retention-time for this neighbor"; | | "Retention-time for this neighbor"; |
| } | | } |
| } | | } |
| } | | } |
| container orf { | | container orf { |
| description | | description |
| "Specify ORF and inbound filtering criteria"; | | "Specify ORF and inbound filtering criteria"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy to specify ORF and inbound filter"; | | "Route policy to specify ORF and inbound filter"; |
| } | | } |
| } | | } |
| container replace-private-as { | | container replace-private-as { |
| presence "Indicates a replace-private-as node is configured."; | | presence "Indicates a replace-private-as node is configured."; |
| description | | description |
| "Replace private AS number from outbound updates"; | | "Replace private AS number from outbound updates"; |
| container internal { | | container internal { |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| } | | } |
| container remove-private-as { | | container remove-private-as { |
| presence "Indicates a remove-private-as node is configured."; | | presence "Indicates a remove-private-as node is configured."; |
| description | | description |
| "Remove private AS number from outbound updates"; | | "Remove private AS number from outbound updates"; |
| container entire-aspath { | | container entire-aspath { |
| must "not(../inheritance-disable or ../internal)"; | | must "not(../inheritance-disable or ../internal)"; |
| presence "Indicates a entire-aspath node is configured."; | | presence "Indicates a entire-aspath node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../entire-aspath or ../internal)"; | | must "not(../entire-aspath or ../internal)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| container internal { | | container internal { |
| must "not(../entire-aspath or ../inheritance-disable)"; | | must "not(../entire-aspath or ../inheritance-disable)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container remove-private-as-inbound { | | container remove-private-as-inbound { |
| must "not(entire-aspath and inheritance-disable)"; | | must "not(entire-aspath and inheritance-disable)"; |
| presence "Indicates a inbound node is configured."; | | presence "Indicates a inbound node is configured."; |
| description | | description |
| "Remove private AS number from inbound updates"; | | "Remove private AS number from inbound updates"; |
| container entire-aspath { | | container entire-aspath { |
| presence "Indicates a entire-aspath node is configured."; | | presence "Indicates a entire-aspath node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| } | | } |
| container enforce-multiple-labels { | | container enforce-multiple-labels { |
| presence "Indicates a enforce-multiple-labels node is configured."; | | presence "Indicates a enforce-multiple-labels node is configured."; |
| description | | description |
| "Enforce support for multiple labels (requires manual session flap)"; | | "Enforce support for multiple labels (requires manual session flap)"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent enforce-multiple-labels from being inherited from the parent"; | | "Prevent enforce-multiple-labels from being inherited from the parent"; |
| } | | } |
| } | | } |
| container route-reflector-client { | | container route-reflector-client { |
| presence "Indicates a route-reflector-client node is configured."; | | presence "Indicates a route-reflector-client node is configured."; |
| description | | description |
| "Configure a neighbor as Route Reflector client"; | | "Configure a neighbor as Route Reflector client"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent route-reflector-client from being inherited from the parent"; | | "Prevent route-reflector-client from being inherited from the parent"; |
| } | | } |
| } | | } |
| container accept-route-legacy-rt { | | container accept-route-legacy-rt { |
| presence "Indicates a accept-route-legacy-rt node is configured."; | | presence "Indicates a accept-route-legacy-rt node is configured."; |
| description | | description |
| "Configure a neighbor to support legacy PE for RT-Constraint AF"; | | "Configure a neighbor to support legacy PE for RT-Constraint AF"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent accept-route-legacy-RT from being inherited from the parent"; | | "Prevent accept-route-legacy-RT from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-community-ebgp { | | container send-community-ebgp { |
| presence "Indicates a send-community-ebgp node is configured."; | | presence "Indicates a send-community-ebgp node is configured."; |
| description | | description |
| "Send community attribute to this external neighbor"; | | "Send community attribute to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-community-ebgp from being inherited from the parent"; | | "Prevent send-community-ebgp from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-community-gshut-ebgp { | | container send-community-gshut-ebgp { |
| presence "Indicates a send-community-gshut-ebgp node is configured."; | | presence "Indicates a send-community-gshut-ebgp node is configured."; |
| description | | description |
| "Allow the g-shut community to be sent to this external neighbor"; | | "Allow the g-shut community to be sent to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-community-gshut-ebgp from being inherited from the parent"; | | "Prevent send-community-gshut-ebgp from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-extended-community-ebgp { | | container send-extended-community-ebgp { |
| presence "Indicates a send-extended-community-ebgp node is configured."; | | presence "Indicates a send-extended-community-ebgp node is configured."; |
| description | | description |
| "Send extended community attribute to this external neighbor"; | | "Send extended community attribute to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-extended-community-ebgp from being inherited from parent"; | | "Prevent send-extended-community-ebgp from being inherited from parent"; |
| } | | } |
| } | | } |
| container soft-reconfiguration { | | container soft-reconfiguration { |
| description | | description |
| "Per neighbor soft reconfiguration"; | | "Per neighbor soft reconfiguration"; |
| container inbound { | | container inbound { |
| presence "Indicates a inbound node is configured."; | | presence "Indicates a inbound node is configured."; |
| description | | description |
| "Allow inbound soft reconfiguration for this neighbor"; | | "Allow inbound soft reconfiguration for this neighbor"; |
| container rpki-dropped-only { | | container rpki-dropped-only { |
| must "not(../rpki-tested-only or ../always or ../inheritance-disable)"; | | must "not(../rpki-tested-only or ../always or ../inheritance-disable)"; |
| presence "Indicates a rpki-dropped-only node is configured."; | | presence "Indicates a rpki-dropped-only node is configured."; |
| description | | description |
| "Use soft-reconfig, for paths dropped by route-policy which have RPKI validity state check"; | | "Use soft-reconfig, for paths dropped by route-policy which have RPKI validity state check"; |
| } | | } |
| container rpki-tested-only { | | container rpki-tested-only { |
| must "not(../rpki-dropped-only or ../always or ../inheritance-disable)"; | | must "not(../rpki-dropped-only or ../always or ../inheritance-disable)"; |
| presence "Indicates a rpki-tested-only node is configured."; | | presence "Indicates a rpki-tested-only node is configured."; |
| description | | description |
| "Use soft-reconfig for paths tested or dropped by route-policy which have RPKI validity state check"; | | "Use soft-reconfig for paths tested or dropped by route-policy which have RPKI validity state check"; |
| } | | } |
| container always { | | container always { |
| must "not(../rpki-dropped-only or ../rpki-tested-only or ../inheritance-disable)"; | | must "not(../rpki-dropped-only or ../rpki-tested-only or ../inheritance-disable)"; |
| presence "Indicates a always node is configured."; | | presence "Indicates a always node is configured."; |
| description | | description |
| "Always use soft reconfig, even if route refresh is supported"; | | "Always use soft reconfig, even if route refresh is supported"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../rpki-dropped-only or ../rpki-tested-only or ../always)"; | | must "not(../rpki-dropped-only or ../rpki-tested-only or ../always)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent soft-reconfiguration from being inherited from the parent"; | | "Prevent soft-reconfiguration from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container update { | | container update { |
| description | | description |
| "BGP out bound message"; | | "BGP out bound message"; |
| container out { | | container out { |
| description | | description |
| "BGP out bound message handling"; | | "BGP out bound message handling"; |
| container originator-loopcheck { | | container originator-loopcheck { |
| presence "Indicates a originator-loopcheck node is configured."; | | presence "Indicates a originator-loopcheck node is configured."; |
| description | | description |
| "Loop check for same originator which sent the route"; | | "Loop check for same originator which sent the route"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable originator loop check"; | | "Disable originator loop check"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container advertise { | | container advertise { |
| description | | description |
| "Per neighbor advertisement options"; | | "Per neighbor advertisement options"; |
| container permanent-network { | | container permanent-network { |
| when | | when |
| "../../af-name != 'vpnv4-unicast' and | | "../../af-name != 'vpnv4-unicast' and |
| ../../af-name != 'vpnv4-multicast' and | | ../../af-name != 'vpnv4-multicast' and |
| ../../af-name != 'vpnv4-flowspec' and | | ../../af-name != 'vpnv4-flowspec' and |
| ../../af-name != 'vpnv6-flowspec' and | | ../../af-name != 'vpnv6-flowspec' and |
| ../../af-name != 'vpnv6-multicast' and | | ../../af-name != 'vpnv6-multicast' and |
| ../../af-name != 'vpnv6-unicast' and | | ../../af-name != 'vpnv6-unicast' and |
| ../../af-name != 'l2vpn-evpn' and | | ../../af-name != 'l2vpn-evpn' and |
| ../../af-name != 'l2vpn-mspw' and | | ../../af-name != 'l2vpn-mspw' and |
| ../../af-name != 'l2vpn-vpls-vpws'"; | | ../../af-name != 'l2vpn-vpls-vpws'"; |
| presence "Indicates a permanent-network node is configured."; | | presence "Indicates a permanent-network node is configured."; |
| description | | description |
| "Allow permanent networks for this neighbor"; | | "Allow permanent networks for this neighbor"; |
| } | | } |
| container local-labeled-route { | | container local-labeled-route { |
| when | | when |
| "../../af-name != 'vpnv4-unicast' and | | "../../af-name != 'vpnv4-unicast' and |
| ../../af-name != 'vpnv4-multicast' and | | ../../af-name != 'vpnv4-multicast' and |
| ../../af-name != 'vpnv4-flowspec' and | | ../../af-name != 'vpnv4-flowspec' and |
| ../../af-name != 'vpnv6-flowspec' and | | ../../af-name != 'vpnv6-flowspec' and |
| ../../af-name != 'vpnv6-multicast' and | | ../../af-name != 'vpnv6-multicast' and |
| ../../af-name != 'vpnv6-unicast' and | | ../../af-name != 'vpnv6-unicast' and |
| ../../af-name != 'l2vpn-evpn' and | | ../../af-name != 'l2vpn-evpn' and |
| ../../af-name != 'l2vpn-mspw' and | | ../../af-name != 'l2vpn-mspw' and |
| ../../af-name != 'l2vpn-vpls-vpws'"; | | ../../af-name != 'l2vpn-vpls-vpws'"; |
| presence "Indicates a local-labeled-route node is configured."; | | presence "Indicates a local-labeled-route node is configured."; |
| description | | description |
| "Advertisement of routes with local-label"; | | "Advertisement of routes with local-label"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise routes with local-label via Unicast SAFI"; | | "Do not advertise routes with local-label via Unicast SAFI"; |
| } | | } |
| } | | } |
| container vpnv4 { | | container vpnv4 { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "VPNv4 Address Family"; | | "VPNv4 Address Family"; |
| container unicast { | | container unicast { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container enable { | | container enable { |
| presence "Indicates an enable node is configured."; | | presence "Indicates an enable node is configured."; |
| description | | description |
| "Enable advertise vpnv4 unicast"; | | "Enable advertise vpnv4 unicast"; |
| container re-originated { | | container re-originated { |
| presence "Indicates a re-originated node is configured."; | | presence "Indicates a re-originated node is configured."; |
| description | | description |
| "Advertise re-orignated and local routes only"; | | "Advertise re-orignated and local routes only"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Advertise re-originated and local routes with stitching Route-Targets"; | | "Advertise re-originated and local routes with stitching Route-Targets"; |
| } | | } |
| } | | } |
| } | | } |
| container imported-from-default-vrf { | | container imported-from-default-vrf { |
| description | | description |
| "Default VRF imported routes"; | | "Default VRF imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of default VRF imported routes"; | | "Disable advertisement of default VRF imported routes"; |
| } | | } |
| } | | } |
| container imported-from-vrf { | | container imported-from-vrf { |
| description | | description |
| "VRF extranet imported routes"; | | "VRF extranet imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF extranet imported routes"; | | "Disable advertisement of VRF extranet imported routes"; |
| } | | } |
| } | | } |
| container imported-from-bridgedomain { | | container imported-from-bridgedomain { |
| description | | description |
| "VRF EVPN extranet imported routes "; | | "VRF EVPN extranet imported routes "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF EVPN extranet imported routes"; | | "Disable advertisement of VRF EVPN extranet imported routes"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container vpnv6 { | | container vpnv6 { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "VPNv6 Address Family"; | | "VPNv6 Address Family"; |
| container unicast { | | container unicast { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container enable { | | container enable { |
| presence "Indicates an enable node is configured."; | | presence "Indicates an enable node is configured."; |
| description | | description |
| "Enable advertise vpnv6 unicast"; | | "Enable advertise vpnv6 unicast"; |
| container re-originated { | | container re-originated { |
| presence "Indicates a re-originated node is configured."; | | presence "Indicates a re-originated node is configured."; |
| description | | description |
| "Advertise Re-orignated routes only"; | | "Advertise Re-orignated routes only"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Advertise re-originated routes with stitching Route-Targets"; | | "Advertise re-originated routes with stitching Route-Targets"; |
| } | | } |
| } | | } |
| } | | } |
| container imported-from-default-vrf { | | container imported-from-default-vrf { |
| description | | description |
| "Default VRF imported routes"; | | "Default VRF imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of default VRF imported routes"; | | "Disable advertisement of default VRF imported routes"; |
| } | | } |
| } | | } |
| container imported-from-vrf { | | container imported-from-vrf { |
| description | | description |
| "VRF extranet imported routes"; | | "VRF extranet imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF extranet imported routes"; | | "Disable advertisement of VRF extranet imported routes"; |
| } | | } |
| } | | } |
| container imported-from-bridgedomain { | | container imported-from-bridgedomain { |
| description | | description |
| "VRF EVPN extranet imported routes"; | | "VRF EVPN extranet imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF EVPN extranet imported routes"; | | "Disable advertisement of VRF EVPN extranet imported routes"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container l2vpn { | | container l2vpn { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "L2VPN Address Family"; | | "L2VPN Address Family"; |
| container evpn { | | container evpn { |
| when "../../../af-name = 'l2vpn-evpn'"; | | when "../../../af-name = 'l2vpn-evpn'"; |
| presence "Indicates a evpn node is configured."; | | presence "Indicates a evpn node is configured."; |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container re-originated { | | container re-originated { |
| presence "Indicates a re-originated node is configured."; | | presence "Indicates a re-originated node is configured."; |
| description | | description |
| "Advertise Re-orignated routes only"; | | "Advertise Re-orignated routes only"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Advertise re-originated routes with stitching Route-Targets"; | | "Advertise re-originated routes with stitching Route-Targets"; |
| } | | } |
| } | | } |
| } | | } |
| container evpn-disable { | | container evpn-disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Advertisement of selected SAFI"; | | "Disable Advertisement of selected SAFI"; |
| } | | } |
| container vpls-vpws { | | container vpls-vpws { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Advertisement of selected SAFI"; | | "Disable Advertisement of selected SAFI"; |
| } | | } |
| } | | } |
| container mspw { | | container mspw { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Advertisement of selected SAFI"; | | "Disable Advertisement of selected SAFI"; |
| } | | } |
| } | | } |
| container gateway-ip-disable { | | container gateway-ip-disable { |
| when "../../../af-name = 'l2vpn-evpn'"; | | when "../../../af-name = 'l2vpn-evpn'"; |
| presence "Indicates a gateway-ip-disable node is configured."; | | presence "Indicates a gateway-ip-disable node is configured."; |
| description | | description |
| "Disable advertisement of non-zero EVPN Gateway-IP"; | | "Disable advertisement of non-zero EVPN Gateway-IP"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent EVPN Gateway-IP disable being inherited from a parent group"; | | "Prevent EVPN Gateway-IP disable being inherited from a parent group"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container encapsulation-type { | | container encapsulation-type { |
| when | | when |
| "../af-name = 'ipv4-unicast' or | | "../af-name = 'ipv4-unicast' or |
| ../af-name = 'ipv6-unicast' or | | ../af-name = 'ipv6-unicast' or |
| ../af-name = 'vpnv4-unicast' or | | ../af-name = 'vpnv4-unicast' or |
| ../af-name = 'vpnv6-unicast' or | | ../af-name = 'vpnv6-unicast' or |
| ../af-name = 'l2vpn-evpn'"; | | ../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "Specify encapsulation type"; | | "Specify encapsulation type"; |
| container vxlan { | | container vxlan { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| must "not(../srv6)"; | | must "not(../srv6)"; |
| presence "Indicates a vxlan node is configured."; | | presence "Indicates a vxlan node is configured."; |
| description | | description |
| "VxLAN encapsulation"; | | "VxLAN encapsulation"; |
| } | | } |
| container srv6 { | | container srv6 { |
| when "../../af-name != 'l2vpn-evpn'"; | | when "../../af-name != 'l2vpn-evpn'"; |
| must "not(../vxlan)"; | | must "not(../vxlan)"; |
| presence "Indicates a srv6 node is configured."; | | presence "Indicates a srv6 node is configured."; |
| description | | description |
| "SRv6 encapsulation"; | | "SRv6 encapsulation"; |
| } | | } |
| } | | } |
| container segment-routing { | | container segment-routing { |
| when "../af-name = 'vpnv4-unicast'"; | | when "../af-name = 'vpnv4-unicast'"; |
| description | | description |
| "enable segment-routing srv6 version 4"; | | "enable segment-routing srv6 version 4"; |
| container srv6 { | | container srv6 { |
| description | | description |
| "srv6 version 4"; | | "srv6 version 4"; |
| container prefix-sid-type4 { | | container prefix-sid-type4 { |
| presence "Indicates a prefix-sid-type4 node is configured."; | | presence "Indicates a prefix-sid-type4 node is configured."; |
| description | | description |
| "Enable prefix sid version 4 encoding"; | | "Enable prefix sid version 4 encoding"; |
| } | | } |
| } | | } |
| } | | } |
| container import { | | container import { |
| when "../af-name = 'vpnv4-unicast' or ../af-name = 'vpnv6-unicast' or ../af-name = 'l2vpn-evpn'"; | | when "../af-name = 'vpnv4-unicast' or ../af-name = 'vpnv6-unicast' or ../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "Import options for neighbor address-family routes"; | | "Import options for neighbor address-family routes"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Import routes using stitching RTs"; | | "Import routes using stitching RTs"; |
| container re-originate { | | container re-originate { |
| presence "Indicates a re-originate node is configured."; | | presence "Indicates a re-originate node is configured."; |
| description | | description |
| "Re-originate imported routes"; | | "Re-originate imported routes"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Reoriginate imported routes by attaching stitching RTs"; | | "Reoriginate imported routes by attaching stitching RTs"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf weight { | | leaf weight { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "default weight"; | | "default weight"; |
| } | | } |
| } | | } |
| description | | description |
| "Set default weight for routes from this neighbor"; | | "Set default weight for routes from this neighbor"; |
| } | | } |
| container allowas-in { | | container allowas-in { |
| presence "Indicates a allowas-in node is configured."; | | presence "Indicates a allowas-in node is configured."; |
| description | | description |
| "Allow as-path with my AS present in it"; | | "Allow as-path with my AS present in it"; |
| leaf number-of-occurences { | | leaf number-of-occurences { |
| type uint32 { | | type uint32 { |
| range "1..10" { | | range "1..10" { |
| description | | description |
| "Number of occurences of AS number"; | | "Number of occurences of AS number"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of occurences of AS number"; | | "Number of occurences of AS number"; |
| } | | } |
| } | | } |
| container allowconfedas-in { | | container allowconfedas-in { |
| presence "Indicates a allowconfedas-in node is configured."; | | presence "Indicates a allowconfedas-in node is configured."; |
| description | | description |
| "Allow as-path with my confederation AS present in it"; | | "Allow as-path with my confederation AS present in it"; |
| leaf number-of-occurences { | | leaf number-of-occurences { |
| type uint32 { | | type uint32 { |
| range "1..10" { | | range "1..10" { |
| description | | description |
| "Number of occurences of confederation AS number"; | | "Number of occurences of confederation AS number"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of occurences of confederation AS number"; | | "Number of occurences of confederation AS number"; |
| } | | } |
| } | | } |
| container long-lived-graceful-restart { | | container long-lived-graceful-restart { |
| description | | description |
| "Enable long lived graceful restart support"; | | "Enable long lived graceful restart support"; |
| container stale-time { | | container stale-time { |
| description | | description |
| "Maximum time to wait before purging long-lived stale routes"; | | "Maximum time to wait before purging long-lived stale routes"; |
| leaf send { | | leaf send { |
| type uint32 { | | type uint32 { |
| range "0..16777215" { | | range "0..16777215" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Stale-time sent in LLGR Capability"; | | "Stale-time sent in LLGR Capability"; |
| } | | } |
| leaf accept { | | leaf accept { |
| type uint32 { | | type uint32 { |
| range "0..16777215" { | | range "0..16777215" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum stale-time acceptable from neighbor"; | | "Maximum stale-time acceptable from neighbor"; |
| } | | } |
| } | | } |
| container capable { | | container capable { |
| presence "Indicates a capable node is configured."; | | presence "Indicates a capable node is configured."; |
| description | | description |
| "Treat neighbor as LLGR capable"; | | "Treat neighbor as LLGR capable"; |
| } | | } |
| } | | } |
| container as-override { | | container as-override { |
| presence "Indicates a as-override node is configured."; | | presence "Indicates a as-override node is configured."; |
| description | | description |
| "Override matching AS-number while sending update"; | | "Override matching AS-number while sending update"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent as-override from being inherited from the parent"; | | "Prevent as-override from being inherited from the parent"; |
| } | | } |
| } | | } |
| container aigp { | | container aigp { |
| presence "Indicates a aigp node is configured."; | | presence "Indicates a aigp node is configured."; |
| description | | description |
| "Enable AIGP for this neighbor "; | | "Enable AIGP for this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable AIGP"; | | "Disable AIGP"; |
| } | | } |
| } | | } |
| container aigp-send { | | container aigp-send { |
| description | | description |
| "Copy AIGP"; | | "Copy AIGP"; |
| container cost-community { | | container cost-community { |
| must "(cost-community-id and poi) or disable"; | | must "(cost-community-id and poi) or disable"; |
| presence "Indicates a cost-community node is configured."; | | presence "Indicates a cost-community node is configured."; |
| description | | description |
| "Send AIGP value in Cost Community"; | | "Send AIGP value in Cost Community"; |
| leaf cost-community-id { | | leaf cost-community-id { |
| type uint32 { | | type uint32 { |
| range "0..255" { | | range "0..255" { |
| description | | description |
| "Cost community ID"; | | "Cost community ID"; |
| } | | } |
| } | | } |
| must "not(../disable)"; | | must "not(../disable)"; |
| description | | description |
| "Cost community ID"; | | "Cost community ID"; |
| } | | } |
| container poi { | | container poi { |
| must "(igp-cost or pre-bestpath) and not(igp-cost and pre-bestpath)"; | | must "(igp-cost or pre-bestpath) and not(igp-cost and pre-bestpath)"; |
| presence "Indicates a poi node is configured."; | | presence "Indicates a poi node is configured."; |
| description | | description |
| "Point of insertion for bestpath calculation"; | | "Point of insertion for bestpath calculation"; |
| container igp-cost { | | container igp-cost { |
| presence "Indicates a igp-cost node is configured."; | | presence "Indicates a igp-cost node is configured."; |
| description | | description |
| "Cost community is used after IGP distance to next hop"; | | "Cost community is used after IGP distance to next hop"; |
| container transitive { | | container transitive { |
| presence "Indicates a transitive node is configured."; | | presence "Indicates a transitive node is configured."; |
| description | | description |
| "Enable transitive cost community"; | | "Enable transitive cost community"; |
| } | | } |
| } | | } |
| container pre-bestpath { | | container pre-bestpath { |
| presence "Indicates a pre-bestpath node is configured."; | | presence "Indicates a pre-bestpath node is configured."; |
| description | | description |
| "Cost community is first step in best path calculation"; | | "Cost community is first step in best path calculation"; |
| container transitive { | | container transitive { |
| presence "Indicates a transitive node is configured."; | | presence "Indicates a transitive node is configured."; |
| description | | description |
| "Enable transitive cost community"; | | "Enable transitive cost community"; |
| } | | } |
| } | | } |
| } | | } |
| container disable { | | container disable { |
| must "not(../cost-community-id)"; | | must "not(../cost-community-id)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable aigp send cost-community"; | | "Disable aigp send cost-community"; |
| } | | } |
| } | | } |
| container med { | | container med { |
| presence "Indicates a med node is configured."; | | presence "Indicates a med node is configured."; |
| description | | description |
| "Send AIGP value in MED"; | | "Send AIGP value in MED"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable aigp send med"; | | "Disable aigp send med"; |
| } | | } |
| } | | } |
| } | | } |
| container validation { | | container validation { |
| when "../af-name = 'ipv4-flowspec' or ../af-name = 'ipv6-flowspec'"; | | when "../af-name = 'ipv4-flowspec' or ../af-name = 'ipv6-flowspec'"; |
| presence "Indicates a validation node is configured."; | | presence "Indicates a validation node is configured."; |
| description | | description |
| "Flowspec Validation for this neighbor "; | | "Flowspec Validation for this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Flowspec Validation"; | | "Disable Flowspec Validation"; |
| } | | } |
| container redirect { | | container redirect { |
| description | | description |
| "Flowspec Redirect nexthop Validation"; | | "Flowspec Redirect nexthop Validation"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Flowspec Redirect nexthop Validation"; | | "Disable Flowspec Redirect nexthop Validation"; |
| } | | } |
| } | | } |
| } | | } |
| container send-multicast-attributes { | | container send-multicast-attributes { |
| when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv4-labeled-unicast' or ../af-name = 'ipv6-labeled-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-multicast' or ../af-name = 'ipv4-mvpn' or ../af-name = 'ipv6-mvpn'"; | | when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv4-labeled-unicast' or ../af-name = 'ipv6-labeled-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-multicast' or ../af-name = 'ipv4-mvpn' or ../af-name = 'ipv6-mvpn'"; |
| presence "Indicates a send-multicast-attributes node is configured."; | | presence "Indicates a send-multicast-attributes node is configured."; |
| description | | description |
| "Send multicast attributes to this neighbor "; | | "Send multicast attributes to this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable send multicast attribute"; | | "Disable send multicast attribute"; |
| } | | } |
| } | | } |
| container signalling { | | container signalling { |
| description | | description |
| "Signalling protocols to disable, BGP or LDP"; | | "Signalling protocols to disable, BGP or LDP"; |
| container bgp { | | container bgp { |
| description | | description |
| "Select BGP to disable"; | | "Select BGP to disable"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Signalling type"; | | "Disable Signalling type"; |
| } | | } |
| } | | } |
| container ldp { | | container ldp { |
| description | | description |
| "Select LDP to disable"; | | "Select LDP to disable"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Signalling type"; | | "Disable Signalling type"; |
| } | | } |
| } | | } |
| } | | } |
| container accept-own { | | container accept-own { |
| presence "Indicates a accept-own node is configured."; | | presence "Indicates a accept-own node is configured."; |
| description | | description |
| "Handle self-originated routes with Accept-Own community"; | | "Handle self-originated routes with Accept-Own community"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent item being inherited from a parent group"; | | "Prevent item being inherited from a parent group"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container update { | | container update { |
| description | | description |
| "BGP Update configuration"; | | "BGP Update configuration"; |
| container in { | | container in { |
| description | | description |
| "Inbound update message handling"; | | "Inbound update message handling"; |
| container filtering { | | container filtering { |
| presence "Indicates a filtering node is configured."; | | presence "Indicates a filtering node is configured."; |
| description | | description |
| "Inbound update message filtering"; | | "Inbound update message filtering"; |
| container message { | | container message { |
| description | | description |
| "Filtered update messages"; | | "Filtered update messages"; |
| container buffers { | | container buffers { |
| presence "Indicates a buffers node is configured."; | | presence "Indicates a buffers node is configured."; |
| description | | description |
| "Filtered update message buffers"; | | "Filtered update message buffers"; |
| leaf number-of-buffers { | | leaf number-of-buffers { |
| type uint32 { | | type uint32 { |
| range "0..25" { | | range "0..25" { |
| description | | description |
| "Number of buffers to store filtered update messages (resizing does not take effect after filtering action has started)"; | | "Number of buffers to store filtered update messages (resizing does not take effect after filtering action has started)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Filtered update message buffers"; | | "Filtered update message buffers"; |
| } | | } |
| container non-circular { | | container non-circular { |
| presence "Indicates a non-circular node is configured."; | | presence "Indicates a non-circular node is configured."; |
| description | | description |
| "Message buffer list is not circular"; | | "Message buffer list is not circular"; |
| } | | } |
| } | | } |
| } | | } |
| container logging { | | container logging { |
| description | | description |
| "Update filtering syslog message"; | | "Update filtering syslog message"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable update filtering syslog message"; | | "Disable update filtering syslog message"; |
| } | | } |
| } | | } |
| container attribute-filter { | | container attribute-filter { |
| description | | description |
| "Attribute-filter configuration"; | | "Attribute-filter configuration"; |
| leaf group { | | leaf group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Attribute-filter group name"; | | "Attribute-filter group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attribute-filter group configuration"; | | "Attribute-filter group configuration"; |
| } | | } |
| } | | } |
| } | | } |
| container merge { | | container merge { |
| description | | description |
| "Merge incoming updates"; | | "Merge incoming updates"; |
| container safi { | | container safi { |
| description | | description |
| "SAFI of the NLRIs to merge"; | | "SAFI of the NLRIs to merge"; |
| container unicast { | | container unicast { |
| description | | description |
| "IPv4/IPv6 unicast paths"; | | "IPv4/IPv6 unicast paths"; |
| container labeled-unicast { | | container labeled-unicast { |
| presence "Indicates a labeled-unicast node is configured."; | | presence "Indicates a labeled-unicast node is configured."; |
| description | | description |
| "IPv4/IPv6 labeled-unicast paths"; | | "IPv4/IPv6 labeled-unicast paths"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container graceful-maintenance { | | container graceful-maintenance { |
| presence "Indicates a graceful-maintenance node is configured."; | | presence "Indicates a graceful-maintenance node is configured."; |
| description | | description |
| "Attributes for Graceful Maintenance. This will cause neig dprefer routes from this router and choonas. This allows the router to be brourt of service gracefully."; | | "Attributes for Graceful Maintenance. This will cause neig dprefer routes from this router and choonas. This allows the router to be brourt of service gracefully."; |
| container local-preference { | | container local-preference { |
| must "local-preference-value or inheritance-disable"; | | must "local-preference-value or inheritance-disable"; |
| presence "Indicates a local-preference node is configured."; | | presence "Indicates a local-preference node is configured."; |
| description | | description |
| "local preference with which to advertise routes to ibgps. Default=No Touch"; | | "local preference with which to advertise routes to ibgps. Default=No Touch"; |
| leaf local-preference-value { | | leaf local-preference-value { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Range of values for Local Preference"; | | "Range of values for Local Preference"; |
| } | | } |
| } | | } |
| description | | description |
| "Range of values for Local Preference"; | | "Range of values for Local Preference"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local preference from being inherited from the parent"; | | "Prevent local preference from being inherited from the parent"; |
| } | | } |
| } | | } |
| container as-prepends { | | container as-prepends { |
| must "number-of-as-prepends or inheritance-disable"; | | must "number-of-as-prepends or inheritance-disable"; |
| presence "Indicates a as-prepends node is configured."; | | presence "Indicates a as-prepends node is configured."; |
| description | | description |
| "Number of times to prepend the local AS number to the AS pous. Default=0"; | | "Number of times to prepend the local AS number to the AS pous. Default=0"; |
| leaf number-of-as-prepends { | | leaf number-of-as-prepends { |
| type uint32 { | | type uint32 { |
| range "0..6" { | | range "0..6" { |
| description | | description |
| "Range of number of AS prepends"; | | "Range of number of AS prepends"; |
| } | | } |
| } | | } |
| description | | description |
| "Range of number of AS prepends"; | | "Range of number of AS prepends"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent AS prepends from being inherited from the parent"; | | "Prevent AS prepends from being inherited from the parent"; |
| } | | } |
| } | | } |
| container activate { | | container activate { |
| presence "Indicates a activate node is configured."; | | presence "Indicates a activate node is configured."; |
| description | | description |
| "Routes will be announced with the graceful maintenance | | "Routes will be announced with the graceful maintenance |
| attrhi activated either here or under router | | attrhi activated either here or under router |
| bgp atn. While activated, all routes to this | | bgp atn. While activated, all routes to this |
| neigl announced with the attributes | | neigl announced with the attributes |
| conferand all routes from this neighbor will | | conferand all routes from this neighbor will |
| be a tother neighbors with the graceful | | be a tother neighbors with the graceful |
| mainatibutes configured under those | | mainatibutes configured under those |
| neighe-shut community will be announced | | neighe-shut community will be announced |
| regaf e other attributes configured here. To | | regaf e other attributes configured here. To |
| allosh community to be announced to ebgp | | allosh community to be announced to ebgp |
| neigheend-community-gshut-ebgp configuration | | neigheend-community-gshut-ebgp configuration |
| is air. Note: changes to the attributes will | | is air. Note: changes to the attributes will |
| not ecwhile activated."; | | not ecwhile activated."; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent activate from being inherited from the parent"; | | "Prevent activate from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| leaf remote-as { | | leaf remote-as { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| leaf remote-as-list { | | leaf remote-as-list { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "as-list name"; | | "as-list name"; |
| } | | } |
| } | | } |
| description | | description |
| "Remote as-list configuration"; | | "Remote as-list configuration"; |
| } | | } |
| container use { | | container use { |
| description | | description |
| "Inherit configuration from a group"; | | "Inherit configuration from a group"; |
| leaf session-group { | | leaf session-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Session group name"; | | "Session group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit address-family independent config from a session-group"; | | "Inherit address-family independent config from a session-group"; |
| } | | } |
| leaf neighbor-group { | | leaf neighbor-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Neighbor-group name"; | | "Neighbor-group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit configuration from a neighbor-group"; | | "Inherit configuration from a neighbor-group"; |
| } | | } |
| } | | } |
| container advertisement-interval { | | container advertisement-interval { |
| presence "Indicates a advertisement-interval node is configured."; | | presence "Indicates a advertisement-interval node is configured."; |
| description | | description |
| "Minimum interval between sending BGP routing updates"; | | "Minimum interval between sending BGP routing updates"; |
| leaf time-in-seconds { | | leaf time-in-seconds { |
| type uint32 { | | type uint32 { |
| range "0..600" { | | range "0..600" { |
| description | | description |
| "time in seconds"; | | "time in seconds"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Minimum interval between sending BGP routing updates"; | | "Minimum interval between sending BGP routing updates"; |
| } | | } |
| leaf time-in-milliseconds { | | leaf time-in-milliseconds { |
| type uint32 { | | type uint32 { |
| range "0..999" { | | range "0..999" { |
| description | | description |
| "time in milliseconds"; | | "time in milliseconds"; |
| } | | } |
| } | | } |
| description | | description |
| "time in milliseconds"; | | "time in milliseconds"; |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Up to 256 characters describing this neighbor"; | | "Up to 256 characters describing this neighbor"; |
| } | | } |
| } | | } |
| description | | description |
| "Neighbor specific description"; | | "Neighbor specific description"; |
| } | | } |
| container ignore-connected-check { | | container ignore-connected-check { |
| presence "Indicates a ignore-connected-check node is configured."; | | presence "Indicates a ignore-connected-check node is configured."; |
| description | | description |
| "Bypass the directly connected nexthop check for single-hop eBGP peering"; | | "Bypass the directly connected nexthop check for single-hop eBGP peering"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ignore-connected-check from being inherited from the parent"; | | "Prevent ignore-connected-check from being inherited from the parent"; |
| } | | } |
| } | | } |
| container ebgp-multihop { | | container ebgp-multihop { |
| presence "Indicates a ebgp-multihop node is configured."; | | presence "Indicates a ebgp-multihop node is configured."; |
| description | | description |
| "Allow EBGP neighbors not on directly connected networks"; | | "Allow EBGP neighbors not on directly connected networks"; |
| leaf maximum-hop-count { | | leaf maximum-hop-count { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "maximum hop count"; | | "maximum hop count"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "maximum hop count"; | | "maximum hop count"; |
| } | | } |
| container mpls { | | container mpls { |
| presence "Indicates a mpls node is configured."; | | presence "Indicates a mpls node is configured."; |
| description | | description |
| "Disable BGP MPLS forwarding"; | | "Disable BGP MPLS forwarding"; |
| } | | } |
| } | | } |
| container tcp { | | container tcp { |
| description | | description |
| "TCP session configuration commands"; | | "TCP session configuration commands"; |
| container mss { | | container mss { |
| must "initial-mss or inheritance-disable"; | | must "initial-mss or inheritance-disable"; |
| presence "Indicates a mss node is configured."; | | presence "Indicates a mss node is configured."; |
| description | | description |
| "Maximum Segment Size"; | | "Maximum Segment Size"; |
| leaf initial-mss { | | leaf initial-mss { |
| type uint32 { | | type uint32 { |
| range "68..10000" { | | range "68..10000" { |
| description | | description |
| "TCP initial maximum segment size"; | | "TCP initial maximum segment size"; |
| } | | } |
| } | | } |
| description | | description |
| "TCP initial maximum segment size"; | | "TCP initial maximum segment size"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent tcp mss from being inherited from the parent"; | | "Prevent tcp mss from being inherited from the parent"; |
| } | | } |
| } | | } |
| container ip-only-preferred { | | container ip-only-preferred { |
| presence "Indicates an ip-only-preferred node is configured."; | | presence "Indicates an ip-only-preferred node is configured."; |
| description | | description |
| "Prefer to send BGP control plane traffic on IP"; | | "Prefer to send BGP control plane traffic on IP"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates an inheritance-disable node is configured."; | | presence "Indicates an inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| } | | } |
| container bmp-activate { | | container bmp-activate { |
| description | | description |
| "Enable BMP logging for this neighbor"; | | "Enable BMP logging for this neighbor"; |
| container servers { | | container servers { |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| list server { | | list server { |
| key "server-id"; | | key "server-id"; |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| leaf server-id { | | leaf server-id { |
| type uint32 { | | type uint32 { |
| range "1..8" { | | range "1..8" { |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| } | | } |
| } | | } |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container bfd { | | container bfd { |
| description | | description |
| "Configure BFD parameters"; | | "Configure BFD parameters"; |
| container fast-detect { | | container fast-detect { |
| must "not(strict-mode and inheritance-disable)"; | | must "not(strict-mode and inheritance-disable)"; |
| presence "Indicates a fast-detect node is configured."; | | presence "Indicates a fast-detect node is configured."; |
| description | | description |
| "Enable Fast detection"; | | "Enable Fast detection"; |
| container strict-mode { | | container strict-mode { |
| presence "Indicates a strict-mode node is configured."; | | presence "Indicates a strict-mode node is configured."; |
| description | | description |
| "Hold down neighbor session until BFD session is up"; | | "Hold down neighbor session until BFD session is up"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Prevent bfd settings from being inherited from the parent"; | | "Prevent bfd settings from being inherited from the parent"; |
| } | | } |
| } | | } |
| leaf minimum-interval { | | leaf minimum-interval { |
| type uint32 { | | type uint32 { |
| range "3..30000" { | | range "3..30000" { |
| description | | description |
| "hello interval in milli-seconds"; | | "hello interval in milli-seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Hello interval"; | | "Hello interval"; |
| } | | } |
| leaf multiplier { | | leaf multiplier { |
| type uint32 { | | type uint32 { |
| range "2..16" { | | range "2..16" { |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| container keychain { | | container keychain { |
| must "name or inheritance-disable"; | | must "name or inheritance-disable"; |
| presence "Indicates a keychain node is configured."; | | presence "Indicates a keychain node is configured."; |
| description | | description |
| "Set keychain based authentication"; | | "Set keychain based authentication"; |
| leaf name { | | leaf name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent keychain from being inherited from parent"; | | "Prevent keychain from being inherited from parent"; |
| } | | } |
| } | | } |
| container local-as { | | container local-as { |
| must "as-number or inheritance-disable"; | | must "as-number or inheritance-disable"; |
| presence "Indicates a local-as node is configured."; | | presence "Indicates a local-as node is configured."; |
| description | | description |
| "Specify local AS number"; | | "Specify local AS number"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| container no-prepend { | | container no-prepend { |
| presence "Indicates a no-prepend node is configured."; | | presence "Indicates a no-prepend node is configured."; |
| description | | description |
| "Do not prepend local AS to announcements from this neighbor"; | | "Do not prepend local AS to announcements from this neighbor"; |
| container replace-as { | | container replace-as { |
| presence "Indicates a replace-as node is configured."; | | presence "Indicates a replace-as node is configured."; |
| description | | description |
| "Prepend only local AS to announcements to this neighbor"; | | "Prepend only local AS to announcements to this neighbor"; |
| container dual-as { | | container dual-as { |
| presence "Indicates a dual-as node is configured."; | | presence "Indicates a dual-as node is configured."; |
| description | | description |
| "Dual-AS mode"; | | "Dual-AS mode"; |
| } | | } |
| } | | } |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local AS from being inherited from parent"; | | "Prevent local AS from being inherited from parent"; |
| } | | } |
| } | | } |
| container password { | | container password { |
| must "encrypted or inheritance-disable"; | | must "encrypted or inheritance-disable"; |
| presence "Indicates a password node is configured."; | | presence "Indicates a password node is configured."; |
| description | | description |
| "Set a password"; | | "Set a password"; |
| leaf encrypted { | | leaf encrypted { |
| type xr:Proprietary-password; | | type xr:Proprietary-password; |
| description | | description |
| "Specifies an ENCRYPTED password will follow"; | | "Specifies an ENCRYPTED password will follow"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent password from being inherited from parent"; | | "Prevent password from being inherited from parent"; |
| } | | } |
| } | | } |
| container receive-buffer-size { | | container receive-buffer-size { |
| presence "Indicates a receive-buffer-size node is configured."; | | presence "Indicates a receive-buffer-size node is configured."; |
| description | | description |
| "Set socket and BGP receive buffer size"; | | "Set socket and BGP receive buffer size"; |
| leaf receive-socket-buffer-size { | | leaf receive-socket-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "Receive socket buffer size in bytes"; | | "Receive socket buffer size in bytes"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Set socket and BGP receive buffer size"; | | "Set socket and BGP receive buffer size"; |
| } | | } |
| leaf bgp-read-buffer-size { | | leaf bgp-read-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| container send-buffer-size { | | container send-buffer-size { |
| presence "Indicates a send-buffer-size node is configured."; | | presence "Indicates a send-buffer-size node is configured."; |
| description | | description |
| "Set socket and BGP send buffer size"; | | "Set socket and BGP send buffer size"; |
| leaf send-socket-buffer-size { | | leaf send-socket-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "Send socket buffer size in bytes"; | | "Send socket buffer size in bytes"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Set socket and BGP send buffer size"; | | "Set socket and BGP send buffer size"; |
| } | | } |
| leaf bgp-write-buffer-size { | | leaf bgp-write-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| } | | } |
| container shutdown { | | container shutdown { |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Administratively shut down this neighbor"; | | "Administratively shut down this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent this neighbor being shutdown, even if its parent is"; | | "Prevent this neighbor being shutdown, even if its parent is"; |
| } | | } |
| } | | } |
| container fast-fallover { | | container fast-fallover { |
| presence "Indicates a fast-fallover node is configured."; | | presence "Indicates a fast-fallover node is configured."; |
| description | | description |
| "Force neighbor to be directly connected. Bring neighbor down if its interface goes down"; | | "Force neighbor to be directly connected. Bring neighbor down if its interface goes down"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent this neighbor from inheriting this config from a group it is in"; | | "Prevent this neighbor from inheriting this config from a group it is in"; |
| } | | } |
| } | | } |
| container timers { | | container timers { |
| presence "Indicates a timers node is configured."; | | presence "Indicates a timers node is configured."; |
| description | | description |
| "BGP per neighbor timers"; | | "BGP per neighbor timers"; |
| leaf keepalive-interval { | | leaf keepalive-interval { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "Keepalive interval"; | | "Keepalive interval"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "BGP timers"; | | "BGP timers"; |
| } | | } |
| leaf holdtime { | | leaf holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Holdtime."; | | "Holdtime."; |
| } | | } |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Holdtime. Set 0 to disable keepalives/hold time."; | | "Holdtime. Set 0 to disable keepalives/hold time."; |
| } | | } |
| leaf minimum-acceptable-holdtime { | | leaf minimum-acceptable-holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Minimum acceptable holdtime from neighbor."; | | "Minimum acceptable holdtime from neighbor."; |
| } | | } |
| } | | } |
| } | | } |
| description | | description |
| "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; | | "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| container local { | | container local { |
| description | | description |
| "Configure local parameter"; | | "Configure local parameter"; |
| container address { | | container address { |
| must "ip-address or inheritance-disable"; | | must "ip-address or inheritance-disable"; |
| presence "Indicates a address node is configured."; | | presence "Indicates a address node is configured."; |
| description | | description |
| "use configured local address for bgp peering"; | | "use configured local address for bgp peering"; |
| leaf ip-address { | | leaf ip-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IPv4 address"; | | "IPv4 address"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local address from being inherited from parent"; | | "Prevent local address from being inherited from parent"; |
| } | | } |
| } | | } |
| } | | } |
| container log { | | container log { |
| description | | description |
| "Logging update messages per neighbor"; | | "Logging update messages per neighbor"; |
| container message { | | container message { |
| description | | description |
| "Logging update/notification messages per neighbor"; | | "Logging update/notification messages per neighbor"; |
| container in { | | container in { |
| description | | description |
| "Inbound log messages"; | | "Inbound log messages"; |
| leaf message-log-buffer-size { | | leaf message-log-buffer-size { |
| type uint32 { | | type uint32 { |
| range "1..500" { | | range "1..500" { |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| } | | } |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable inbound message logging"; | | "Disable inbound message logging"; |
| } | | } |
| container inheritance-diable { | | container inheritance-diable { |
| presence "Indicates a inheritance-diable node is configured."; | | presence "Indicates a inheritance-diable node is configured."; |
| description | | description |
| "Prevents the msg log from being inherited from the parent"; | | "Prevents the msg log from being inherited from the parent"; |
| } | | } |
| } | | } |
| container out { | | container out { |
| description | | description |
| "Outbound log messages"; | | "Outbound log messages"; |
| leaf message-log-buffer-size { | | leaf message-log-buffer-size { |
| type uint32 { | | type uint32 { |
| range "1..500" { | | range "1..500" { |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| } | | } |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable outbound message logging"; | | "Disable outbound message logging"; |
| } | | } |
| container inheritance-diable { | | container inheritance-diable { |
| presence "Indicates a inheritance-diable node is configured."; | | presence "Indicates a inheritance-diable node is configured."; |
| description | | description |
| "Prevents the msg log from being inherited from the parent"; | | "Prevents the msg log from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf update-source { | | leaf update-source { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Source of routing updates"; | | "Source of routing updates"; |
| } | | } |
| container local-address-subnet { | | container local-address-subnet { |
| description | | description |
| "Local address subnet of routing updates"; | | "Local address subnet of routing updates"; |
| leaf ip-address { | | leaf ip-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IP address and mask length"; | | "IP address and mask length"; |
| } | | } |
| leaf mask-length { | | leaf mask-length { |
| type uint32 { | | type uint32 { |
| range "0..128" { | | range "0..128" { |
| description | | description |
| "IP address mask length"; | | "IP address mask length"; |
| } | | } |
| } | | } |
| description | | description |
| "IP address and mask length"; | | "IP address and mask length"; |
| } | | } |
| } | | } |
| container dmz-link-bandwidth { | | container dmz-link-bandwidth { |
| presence "Indicates a dmz-link-bandwidth node is configured."; | | presence "Indicates a dmz-link-bandwidth node is configured."; |
| description | | description |
| "Propagate the DMZ link bandwidth"; | | "Propagate the DMZ link bandwidth"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent dmz-link-bandwidth from being inherited from the parent"; | | "Prevent dmz-link-bandwidth from being inherited from the parent"; |
| } | | } |
| } | | } |
| container ebgp-recv-extcommunity-dmz { | | container ebgp-recv-extcommunity-dmz { |
| presence "Indicates a ebgp-recv-extcommunity-dmz node is configured."; | | presence "Indicates a ebgp-recv-extcommunity-dmz node is configured."; |
| description | | description |
| "Receive extcommunity dmz link bandwidth from ebgp neighbor"; | | "Receive extcommunity dmz link bandwidth from ebgp neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ebgp-send-community-dmz from being inherited from parent"; | | "Prevent ebgp-send-community-dmz from being inherited from parent"; |
| } | | } |
| } | | } |
| container ebgp-send-extcommunity-dmz { | | container ebgp-send-extcommunity-dmz { |
| must "not(cumulative and inheritance-disable)"; | | must "not(cumulative and inheritance-disable)"; |
| presence "Indicates a ebgp-send-extcommunity-dmz node is configured."; | | presence "Indicates a ebgp-send-extcommunity-dmz node is configured."; |
| description | | description |
| "Send extended community dmz link bandwidth to ebgp neighbor"; | | "Send extended community dmz link bandwidth to ebgp neighbor"; |
| container cumulative { | | container cumulative { |
| presence "Indicates a cumulative node is configured."; | | presence "Indicates a cumulative node is configured."; |
| description | | description |
| "Send cumulative community dmz link bandwidth of all multipaths to ebgp neighbor"; | | "Send cumulative community dmz link bandwidth of all multipaths to ebgp neighbor"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ebgp-send-extcommunity-dmz from being inherited from parent"; | | "Prevent ebgp-send-extcommunity-dmz from being inherited from parent"; |
| } | | } |
| } | | } |
| container ttl-security { | | container ttl-security { |
| presence "Indicates a ttl-security node is configured."; | | presence "Indicates a ttl-security node is configured."; |
| description | | description |
| "Enable EBGP TTL security"; | | "Enable EBGP TTL security"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ttl-security from being inherited from the parent"; | | "Prevent ttl-security from being inherited from the parent"; |
| } | | } |
| } | | } |
| container session-open-mode { | | container session-open-mode { |
| description | | description |
| "Establish BGP session using this TCP open mode"; | | "Establish BGP session using this TCP open mode"; |
| container active-only { | | container active-only { |
| must "not(../passive-only or ../both)"; | | must "not(../passive-only or ../both)"; |
| presence "Indicates a active-only node is configured."; | | presence "Indicates a active-only node is configured."; |
| description | | description |
| "Active only"; | | "Active only"; |
| } | | } |
| container passive-only { | | container passive-only { |
| must "not(../active-only or ../both)"; | | must "not(../active-only or ../both)"; |
| presence "Indicates a passive-only node is configured."; | | presence "Indicates a passive-only node is configured."; |
| description | | description |
| "Passive only"; | | "Passive only"; |
| } | | } |
| container both { | | container both { |
| must "not(../active-only or ../passive-only)"; | | must "not(../active-only or ../passive-only)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Prevent session-open-mode being inherited from the parent"; | | "Prevent session-open-mode being inherited from the parent"; |
| } | | } |
| } | | } |
| leaf dscp { | | leaf dscp { |
| type enumeration { | | type enumeration { |
| enum "default" { | | enum "default" { |
| value 0; | | value 0; |
| description | | description |
| "Set packets with default dscp (000000)"; | | "Set packets with default dscp (000000)"; |
| } | | } |
| enum "cs1" { | | enum "cs1" { |
| value 8; | | value 8; |
| description | | description |
| "Set packets with CS1(precedence 1) dscp (001000)"; | | "Set packets with CS1(precedence 1) dscp (001000)"; |
| } | | } |
| enum "af11" { | | enum "af11" { |
| value 10; | | value 10; |
| description | | description |
| "Set packets with AF11 dscp (001010)"; | | "Set packets with AF11 dscp (001010)"; |
| } | | } |
| enum "af12" { | | enum "af12" { |
| value 12; | | value 12; |
| description | | description |
| "Set packets with AF12 dscp (001100)"; | | "Set packets with AF12 dscp (001100)"; |
| } | | } |
| enum "af13" { | | enum "af13" { |
| value 14; | | value 14; |
| description | | description |
| "Set packets with AF13 dscp (001110)"; | | "Set packets with AF13 dscp (001110)"; |
| } | | } |
| enum "cs2" { | | enum "cs2" { |
| value 16; | | value 16; |
| description | | description |
| "Set packets with CS2(precedence 2) dscp (010000)"; | | "Set packets with CS2(precedence 2) dscp (010000)"; |
| } | | } |
| enum "af21" { | | enum "af21" { |
| value 18; | | value 18; |
| description | | description |
| "Set packets with AF21 dscp (010010)"; | | "Set packets with AF21 dscp (010010)"; |
| } | | } |
| enum "af22" { | | enum "af22" { |
| value 20; | | value 20; |
| description | | description |
| "Set packets with AF22 dscp (010100)"; | | "Set packets with AF22 dscp (010100)"; |
| } | | } |
| enum "af23" { | | enum "af23" { |
| value 22; | | value 22; |
| description | | description |
| "Set packets with AF23 dscp (010110)"; | | "Set packets with AF23 dscp (010110)"; |
| } | | } |
| enum "cs3" { | | enum "cs3" { |
| value 24; | | value 24; |
| description | | description |
| "Set packets with CS3(precedence 3) dscp (011000)"; | | "Set packets with CS3(precedence 3) dscp (011000)"; |
| } | | } |
| enum "af31" { | | enum "af31" { |
| value 26; | | value 26; |
| description | | description |
| "Set packets with AF31 dscp (011010)"; | | "Set packets with AF31 dscp (011010)"; |
| } | | } |
| enum "af32" { | | enum "af32" { |
| value 28; | | value 28; |
| description | | description |
| "Set packets with AF32 dscp (011100)"; | | "Set packets with AF32 dscp (011100)"; |
| } | | } |
| enum "af33" { | | enum "af33" { |
| value 30; | | value 30; |
| description | | description |
| "Set packets with AF33 dscp (011110)"; | | "Set packets with AF33 dscp (011110)"; |
| } | | } |
| enum "cs4" { | | enum "cs4" { |
| value 32; | | value 32; |
| description | | description |
| "Set packets with CS4(precedence 4) dscp (100000)"; | | "Set packets with CS4(precedence 4) dscp (100000)"; |
| } | | } |
| enum "af41" { | | enum "af41" { |
| value 34; | | value 34; |
| description | | description |
| "Set packets with AF41 dscp (100010)"; | | "Set packets with AF41 dscp (100010)"; |
| } | | } |
| enum "af42" { | | enum "af42" { |
| value 36; | | value 36; |
| description | | description |
| "Set packets with AF42 dscp (100100)"; | | "Set packets with AF42 dscp (100100)"; |
| } | | } |
| enum "af43" { | | enum "af43" { |
| value 38; | | value 38; |
| description | | description |
| "Set packets with AF43 dscp (100110)"; | | "Set packets with AF43 dscp (100110)"; |
| } | | } |
| enum "cs5" { | | enum "cs5" { |
| value 40; | | value 40; |
| description | | description |
| "Set packets with CS5(precedence 5) dscp (101000)"; | | "Set packets with CS5(precedence 5) dscp (101000)"; |
| } | | } |
| enum "ef" { | | enum "ef" { |
| value 46; | | value 46; |
| description | | description |
| "Set packets with EF dscp (101110)"; | | "Set packets with EF dscp (101110)"; |
| } | | } |
| enum "cs6" { | | enum "cs6" { |
| value 48; | | value 48; |
| description | | description |
| "Set packets with CS6(precedence 6) dscp (110000)"; | | "Set packets with CS6(precedence 6) dscp (110000)"; |
| } | | } |
| enum "cs7" { | | enum "cs7" { |
| value 56; | | value 56; |
| description | | description |
| "Set packets with CS7(precedence 7) dscp (111000)"; | | "Set packets with CS7(precedence 7) dscp (111000)"; |
| } | | } |
| } | | } |
| description | | description |
| "Set IP DSCP (DiffServ CodePoint)"; | | "Set IP DSCP (DiffServ CodePoint)"; |
| } | | } |
| leaf precedence { | | leaf precedence { |
| type enumeration { | | type enumeration { |
| enum "routine" { | | enum "routine" { |
| value 0; | | value 0; |
| description | | description |
| "Set packets with routine precedence (0)"; | | "Set packets with routine precedence (0)"; |
| } | | } |
| enum "priority" { | | enum "priority" { |
| value 1; | | value 1; |
| description | | description |
| "Set packets with priority precedence (1)"; | | "Set packets with priority precedence (1)"; |
| } | | } |
| enum "immediate" { | | enum "immediate" { |
| value 2; | | value 2; |
| description | | description |
| "Set packets with immediate precedence (2)"; | | "Set packets with immediate precedence (2)"; |
| } | | } |
| enum "flash" { | | enum "flash" { |
| value 3; | | value 3; |
| description | | description |
| "Set packets with flash precedence (3)"; | | "Set packets with flash precedence (3)"; |
| } | | } |
| enum "flash-override" { | | enum "flash-override" { |
| value 4; | | value 4; |
| description | | description |
| "Set packets with flash override precedence (4)"; | | "Set packets with flash override precedence (4)"; |
| } | | } |
| enum "critical" { | | enum "critical" { |
| value 5; | | value 5; |
| description | | description |
| "Set packets with critical precedence (5)"; | | "Set packets with critical precedence (5)"; |
| } | | } |
| enum "internet" { | | enum "internet" { |
| value 6; | | value 6; |
| description | | description |
| "Set packets with internetwork control precedence (6)"; | | "Set packets with internetwork control precedence (6)"; |
| } | | } |
| enum "network" { | | enum "network" { |
| value 7; | | value 7; |
| description | | description |
| "Set packets with network control precedence (7)"; | | "Set packets with network control precedence (7)"; |
| } | | } |
| } | | } |
| description | | description |
| "Set precedence"; | | "Set precedence"; |
| } | | } |
| container capability { | | container capability { |
| description | | description |
| "Advertise capability to the peer"; | | "Advertise capability to the peer"; |
| container suppress { | | container suppress { |
| description | | description |
| "Suppress advertising capability to the peer "; | | "Suppress advertising capability to the peer "; |
| container four-byte-as { | | container four-byte-as { |
| presence "Indicates a four-byte-as node is configured."; | | presence "Indicates a four-byte-as node is configured."; |
| description | | description |
| "4-byte-as capability"; | | "4-byte-as capability"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent capability suppress 4-type-as being inherited from the parent"; | | "Prevent capability suppress 4-type-as being inherited from the parent"; |
| } | | } |
| } | | } |
| container all { | | container all { |
| presence "Indicates a all node is configured."; | | presence "Indicates a all node is configured."; |
| description | | description |
| "All capabilities"; | | "All capabilities"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| container extended-nexthop-encoding { | | container extended-nexthop-encoding { |
| presence "Indicates a extended-nexthop-encoding node is configured."; | | presence "Indicates a extended-nexthop-encoding node is configured."; |
| description | | description |
| "Extended-nexthop-encoding capabilities (IETF RFC 5549)"; | | "Extended-nexthop-encoding capabilities (IETF RFC 5549)"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| } | | } |
| container additional-paths { | | container additional-paths { |
| description | | description |
| "Additional paths capability"; | | "Additional paths capability"; |
| container send { | | container send { |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Additional paths Send capability"; | | "Additional paths Send capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise additional paths Send capability"; | | "Do not advertise additional paths Send capability"; |
| } | | } |
| } | | } |
| container receive { | | container receive { |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Additional paths Receive capability"; | | "Additional paths Receive capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise additional paths Receive capability"; | | "Do not advertise additional paths Receive capability"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container graceful-restart { | | container graceful-restart { |
| presence "Indicates a graceful-restart node is configured."; | | presence "Indicates a graceful-restart node is configured."; |
| description | | description |
| "Enable graceful restart support for this neighbor"; | | "Enable graceful restart support for this neighbor"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable graceful restart support for this neighbor"; | | "Disable graceful restart support for this neighbor"; |
| } | | } |
| leaf restart-time { | | leaf restart-time { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart time advertised to the neighbor"; | | "Restart time advertised to the neighbor"; |
| } | | } |
| leaf stalepath-time { | | leaf stalepath-time { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum time to wait for restart of GR capable peer"; | | "Maximum time to wait for restart of GR capable peer"; |
| } | | } |
| } | | } |
| container enforce-first-as { | | container enforce-first-as { |
| presence "Indicates a enforce-first-as node is configured."; | | presence "Indicates a enforce-first-as node is configured."; |
| description | | description |
| "Enforce the first AS for EBGP routes"; | | "Enforce the first AS for EBGP routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not enforce the first AS for EBGP routes"; | | "Do not enforce the first AS for EBGP routes"; |
| } | | } |
| } | | } |
| container cluster-id { | | container cluster-id { |
| description | | description |
| "Enter cluster id for this neighbor"; | | "Enter cluster id for this neighbor"; |
| leaf route-reflector-cluster-id { | | leaf route-reflector-cluster-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Route-Reflector Cluster-id as 32 bit quantity"; | | "Route-Reflector Cluster-id as 32 bit quantity"; |
| } | | } |
| } | | } |
| description | | description |
| "Route-Reflector Cluster-id as 32 bit quantity"; | | "Route-Reflector Cluster-id as 32 bit quantity"; |
| } | | } |
| leaf ip-address { | | leaf ip-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "Route-Reflector Cluster-id in IP address format"; | | "Route-Reflector Cluster-id in IP address format"; |
| } | | } |
| } | | } |
| leaf maximum-peers { | | leaf maximum-peers { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Maximum number of peers"; | | "Maximum number of peers"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum dynamic neighbors"; | | "Maximum dynamic neighbors"; |
| } | | } |
| leaf idle-watch-time { | | leaf idle-watch-time { |
| type uint32 { | | type uint32 { |
| range "30..1800" { | | range "30..1800" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum time to wait for deletion of IDLE state dynamic peer"; | | "Maximum time to wait for deletion of IDLE state dynamic peer"; |
| } | | } |
| container egress-engineering { | | container egress-engineering { |
| presence "Indicates a egress-engineering node is configured."; | | presence "Indicates a egress-engineering node is configured."; |
| description | | description |
| "Enable egress peer engineering for this neighbor"; | | "Enable egress peer engineering for this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit egress-engineering from the parent"; | | "Do not inherit egress-engineering from the parent"; |
| } | | } |
| } | | } |
| container peer-sets { | | container peer-sets { |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| list peer-set { | | list peer-set { |
| key "peer-set-id"; | | key "peer-set-id"; |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| leaf peer-set-id { | | leaf peer-set-id { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Identity value of peer-set"; | | "Identity value of peer-set"; |
| } | | } |
| } | | } |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| } | | } |
| } | | } |
| } | | } |
| container peer-node-sid { | | container peer-node-sid { |
| description | | description |
| "Assign this neighbor a manual SID for egress peer engineering"; | | "Assign this neighbor a manual SID for egress peer engineering"; |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..1033575" { | | range "0..1033575" { |
| description | | description |
| "Segment Index to be assigned to this peer. The index will be off SRLB | | "Segment Index to be assigned to this peer. The index will be off SRLB |
| Note: Thmaximum index configurable in dynaminc SRLB range. | | Note: Thmaximum index configurable in dynaminc SRLB range. |
| Since SRa dynamic range, actual maximum index can vary. | | Since SRa dynamic range, actual maximum index can vary. |
| So pleasthe currently configured SRLB range"; | | So pleasthe currently configured SRLB range"; |
| } | | } |
| } | | } |
| description | | description |
| "Segment Index value which is offset of SRLB"; | | "Segment Index value which is offset of SRLB"; |
| } | | } |
| } | | } |
| container ao { | | container ao { |
| description | | description |
| "Enable Authentiation Option"; | | "Enable Authentiation Option"; |
| leaf key-chain-name { | | leaf key-chain-name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| } | | } |
| must "not(../inheritance-disable) and (../include-tcp-options/enable or ../include-tcp-options/disable)"; | | must "not(../inheritance-disable) and (../include-tcp-options/enable or ../include-tcp-options/disable)"; |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| container include-tcp-options { | | container include-tcp-options { |
| description | | description |
| "Include/Exclude other TCP options in the header"; | | "Include/Exclude other TCP options in the header"; |
| container enable { | | container enable { |
| must "not(../disable or ../../inheritance-disable)"; | | must "not(../disable or ../../inheritance-disable)"; |
| presence "Indicates a enable node is configured."; | | presence "Indicates a enable node is configured."; |
| description | | description |
| "Include other TCP options in the header"; | | "Include other TCP options in the header"; |
| } | | } |
| container disable { | | container disable { |
| must "not(../enable or ../../inheritance-disable)"; | | must "not(../enable or ../../inheritance-disable)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Exclude other TCP options in the header"; | | "Exclude other TCP options in the header"; |
| } | | } |
| container accept-ao-mismatch-connection { | | container accept-ao-mismatch-connection { |
| must "../enable or ../disable"; | | must "../enable or ../disable"; |
| presence "Indicates a accept-ao-mismatch-connection node is configured."; | | presence "Indicates a accept-ao-mismatch-connection node is configured."; |
| description | | description |
| "Accept new connection even if AO mismatched"; | | "Accept new connection even if AO mismatched"; |
| } | | } |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../key-chain-name)"; | | must "not(../key-chain-name)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent keychain from being inherited from parent"; | | "Prevent keychain from being inherited from parent"; |
| } | | } |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validation { | | container validation { |
| description | | description |
| "BGP origin-AS validation knobs"; | | "BGP origin-AS validation knobs"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable RPKI origin-AS validation"; | | "Disable RPKI origin-AS validation"; |
| } | | } |
| } | | } |
| } | | } |
| container bestpath { | | container bestpath { |
| description | | description |
| "Change default route selection criteria"; | | "Change default route selection criteria"; |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container allow { | | container allow { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container invalid { | | container invalid { |
| presence "Indicates a invalid node is configured."; | | presence "Indicates a invalid node is configured."; |
| description | | description |
| "BGP bestpath selection will allow 'invalid' origin-AS"; | | "BGP bestpath selection will allow 'invalid' origin-AS"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container af-groups { | | container af-groups { |
| description | | description |
| "Specify a AF group"; | | "Specify a AF group"; |
| list af-group { | | list af-group { |
| must "address-families/address-family"; | | must "address-families/address-family"; |
| key "af-group-name"; | | key "af-group-name"; |
| description | | description |
| "Specify a AF group"; | | "Specify a AF group"; |
| leaf af-group-name { | | leaf af-group-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "AF group name"; | | "AF group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify a AF group"; | | "Specify a AF group"; |
| } | | } |
| container address-families { | | container address-families { |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| list address-family { | | list address-family { |
| key "af-name"; | | key "af-name"; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| leaf af-name { | | leaf af-name { |
| type Bgp-address-family; | | type Bgp-address-family; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| } | | } |
| container use { | | container use { |
| description | | description |
| "Inherit configuration for this address-family from a group"; | | "Inherit configuration for this address-family from a group"; |
| leaf af-group { | | leaf af-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "AF group name"; | | "AF group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit configuration for this address-family from an af-group"; | | "Inherit configuration for this address-family from an af-group"; |
| } | | } |
| } | | } |
| container capability { | | container capability { |
| description | | description |
| "Advertise capability to the peer"; | | "Advertise capability to the peer"; |
| container orf { | | container orf { |
| description | | description |
| "Advertise ORF capability to the peer"; | | "Advertise ORF capability to the peer"; |
| container prefix { | | container prefix { |
| description | | description |
| "Advertise address prefix ORF capability to this neighbor"; | | "Advertise address prefix ORF capability to this neighbor"; |
| container receive { | | container receive { |
| must "not(../send or ../both or ../none)"; | | must "not(../send or ../both or ../none)"; |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Capability to RECEIVE the ORF from this neighbor"; | | "Capability to RECEIVE the ORF from this neighbor"; |
| } | | } |
| container send { | | container send { |
| must "not(../receive or ../both or ../none)"; | | must "not(../receive or ../both or ../none)"; |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Capability to SEND the ORF to this neighbor"; | | "Capability to SEND the ORF to this neighbor"; |
| } | | } |
| container both { | | container both { |
| must "not(../receive or ../send or ../none)"; | | must "not(../receive or ../send or ../none)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Capability to RECEIVE and SEND the ORF from/to this neighbor"; | | "Capability to RECEIVE and SEND the ORF from/to this neighbor"; |
| } | | } |
| container none { | | container none { |
| must "not(../receive or ../send or ../both)"; | | must "not(../receive or ../send or ../both)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No capability to RECEIVE or SEND the ORF from/to this neighbor"; | | "No capability to RECEIVE or SEND the ORF from/to this neighbor"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container default-originate { | | container default-originate { |
| presence "Indicates a default-originate node is configured."; | | presence "Indicates a default-originate node is configured."; |
| description | | description |
| "Originate default route to this neighbor"; | | "Originate default route to this neighbor"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy to specify criteria to originate default"; | | "Route policy to specify criteria to originate default"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../route-policy)"; | | must "not(../route-policy)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent default-originate being inherited from a parent group"; | | "Prevent default-originate being inherited from a parent group"; |
| } | | } |
| } | | } |
| container maximum-prefix { | | container maximum-prefix { |
| presence "Indicates a maximum-prefix node is configured."; | | presence "Indicates a maximum-prefix node is configured."; |
| description | | description |
| "Maximum number of prefixes to accept from this peer"; | | "Maximum number of prefixes to accept from this peer"; |
| leaf prefix-limit { | | leaf prefix-limit { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "maximum no. of prefix limit"; | | "maximum no. of prefix limit"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Maximum number of prefixes to accept from this peer"; | | "Maximum number of prefixes to accept from this peer"; |
| } | | } |
| leaf threshold { | | leaf threshold { |
| type uint32 { | | type uint32 { |
| range "1..100" { | | range "1..100" { |
| description | | description |
| "Threshold value (%) at which to generate a warning msg"; | | "Threshold value (%) at which to generate a warning msg"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Threshold value (%) at which to generate a warning msg"; | | "Threshold value (%) at which to generate a warning msg"; |
| } | | } |
| container warning-only { | | container warning-only { |
| presence "Indicates a warning-only node is configured."; | | presence "Indicates a warning-only node is configured."; |
| description | | description |
| "Only give warning message when limit is exceeded"; | | "Only give warning message when limit is exceeded"; |
| } | | } |
| leaf restart { | | leaf restart { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Time interval (min) after which peering session will be reestablished"; | | "Time interval (min) after which peering session will be reestablished"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart time interval"; | | "Restart time interval"; |
| } | | } |
| container discard-extra-paths { | | container discard-extra-paths { |
| presence "Indicates a discard-extra-paths node is configured."; | | presence "Indicates a discard-extra-paths node is configured."; |
| description | | description |
| "Discard extra paths when limit is exceeded"; | | "Discard extra paths when limit is exceeded"; |
| } | | } |
| } | | } |
| leaf optimal-route-reflection { | | leaf optimal-route-reflection { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| container next-hop-self { | | container next-hop-self { |
| presence "Indicates a next-hop-self node is configured."; | | presence "Indicates a next-hop-self node is configured."; |
| description | | description |
| "Disable the next hop calculation for this neighbor"; | | "Disable the next hop calculation for this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent next-hop-self from being inherited from the parent"; | | "Prevent next-hop-self from being inherited from the parent"; |
| } | | } |
| } | | } |
| container next-hop-unchanged { | | container next-hop-unchanged { |
| presence "Indicates a next-hop-unchanged node is configured."; | | presence "Indicates a next-hop-unchanged node is configured."; |
| description | | description |
| "Do not overwrite next hop before advertising to eBGP peers"; | | "Do not overwrite next hop before advertising to eBGP peers"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent next-hop-unchanged from being inherited from the parent"; | | "Prevent next-hop-unchanged from being inherited from the parent"; |
| } | | } |
| } | | } |
| container next-hop-unchanged-multipath { | | container next-hop-unchanged-multipath { |
| presence "Indicates a next-hop-unchanged-multipath node is configured."; | | presence "Indicates a next-hop-unchanged-multipath node is configured."; |
| description | | description |
| "Do not overwrite nexthop before advertising multipaths"; | | "Do not overwrite nexthop before advertising multipaths"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Paths from this neighbor is eligible for multipath"; | | "Paths from this neighbor is eligible for multipath"; |
| } | | } |
| container slow-peer { | | container slow-peer { |
| description | | description |
| "Configure this neighbor as slow-peer"; | | "Configure this neighbor as slow-peer"; |
| container static { | | container static { |
| must "not(../dynamic)"; | | must "not(../dynamic)"; |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Configure this neighbor as static slow-peer"; | | "Configure this neighbor as static slow-peer"; |
| } | | } |
| container dynamic { | | container dynamic { |
| must "not(../static)"; | | must "not(../static)"; |
| presence "Indicates a dynamic node is configured."; | | presence "Indicates a dynamic node is configured."; |
| description | | description |
| "Configure this neighbor as dynamic slow-peer"; | | "Configure this neighbor as dynamic slow-peer"; |
| leaf threshold { | | leaf threshold { |
| type uint16 { | | type uint16 { |
| range "120..3600" { | | range "120..3600" { |
| description | | description |
| "Threshold (in seconds) to detect this neighbor as slow-peer"; | | "Threshold (in seconds) to detect this neighbor as slow-peer"; |
| } | | } |
| } | | } |
| description | | description |
| "Threshold (in seconds) to detect this neighbor as slow-peer"; | | "Threshold (in seconds) to detect this neighbor as slow-peer"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable dynamic slow-peer"; | | "Disable dynamic slow-peer"; |
| } | | } |
| } | | } |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validation { | | container validation { |
| description | | description |
| "BGP origin-AS validation knobs"; | | "BGP origin-AS validation knobs"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable RPKI origin-AS validation"; | | "Disable RPKI origin-AS validation"; |
| } | | } |
| } | | } |
| } | | } |
| container bestpath { | | container bestpath { |
| description | | description |
| "Change default route selection criteria"; | | "Change default route selection criteria"; |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container allow { | | container allow { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container invalid { | | container invalid { |
| presence "Indicates a invalid node is configured."; | | presence "Indicates a invalid node is configured."; |
| description | | description |
| "BGP bestpath selection will allow 'invalid' origin-AS"; | | "BGP bestpath selection will allow 'invalid' origin-AS"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy"; | | "Apply route policy"; |
| leaf in { | | leaf in { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Apply route policy to inbound routes"; | | "Apply route policy to inbound routes"; |
| } | | } |
| leaf out { | | leaf out { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Apply route policy to outbound routes"; | | "Apply route policy to outbound routes"; |
| } | | } |
| container retention { | | container retention { |
| description | | description |
| "Apply retention policy to inbound routes"; | | "Apply retention policy to inbound routes"; |
| leaf route-policy-name { | | leaf route-policy-name { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| must "../retention-time"; | | must "../retention-time"; |
| description | | description |
| "Apply retention policy to inbound routes"; | | "Apply retention policy to inbound routes"; |
| } | | } |
| leaf retention-time { | | leaf retention-time { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| must "../route-policy-name"; | | must "../route-policy-name"; |
| description | | description |
| "Retention-time for this neighbor"; | | "Retention-time for this neighbor"; |
| } | | } |
| } | | } |
| } | | } |
| container orf { | | container orf { |
| description | | description |
| "Specify ORF and inbound filtering criteria"; | | "Specify ORF and inbound filtering criteria"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy to specify ORF and inbound filter"; | | "Route policy to specify ORF and inbound filter"; |
| } | | } |
| } | | } |
| container replace-private-as { | | container replace-private-as { |
| presence "Indicates a replace-private-as node is configured."; | | presence "Indicates a replace-private-as node is configured."; |
| description | | description |
| "Replace private AS number from outbound updates"; | | "Replace private AS number from outbound updates"; |
| container internal { | | container internal { |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| } | | } |
| container remove-private-as { | | container remove-private-as { |
| presence "Indicates a remove-private-as node is configured."; | | presence "Indicates a remove-private-as node is configured."; |
| description | | description |
| "Remove private AS number from outbound updates"; | | "Remove private AS number from outbound updates"; |
| container entire-aspath { | | container entire-aspath { |
| must "not(../inheritance-disable or ../internal)"; | | must "not(../inheritance-disable or ../internal)"; |
| presence "Indicates a entire-aspath node is configured."; | | presence "Indicates a entire-aspath node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../entire-aspath or ../internal)"; | | must "not(../entire-aspath or ../internal)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| container internal { | | container internal { |
| must "not(../entire-aspath or ../inheritance-disable)"; | | must "not(../entire-aspath or ../inheritance-disable)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container remove-private-as-inbound { | | container remove-private-as-inbound { |
| must "not(entire-aspath and inheritance-disable)"; | | must "not(entire-aspath and inheritance-disable)"; |
| presence "Indicates a inbound node is configured."; | | presence "Indicates a inbound node is configured."; |
| description | | description |
| "Remove private AS number from inbound updates"; | | "Remove private AS number from inbound updates"; |
| container entire-aspath { | | container entire-aspath { |
| presence "Indicates a entire-aspath node is configured."; | | presence "Indicates a entire-aspath node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| } | | } |
| container enforce-multiple-labels { | | container enforce-multiple-labels { |
| presence "Indicates a enforce-multiple-labels node is configured."; | | presence "Indicates a enforce-multiple-labels node is configured."; |
| description | | description |
| "Enforce support for multiple labels (requires manual session flap)"; | | "Enforce support for multiple labels (requires manual session flap)"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent enforce-multiple-labels from being inherited from the parent"; | | "Prevent enforce-multiple-labels from being inherited from the parent"; |
| } | | } |
| } | | } |
| container route-reflector-client { | | container route-reflector-client { |
| presence "Indicates a route-reflector-client node is configured."; | | presence "Indicates a route-reflector-client node is configured."; |
| description | | description |
| "Configure a neighbor as Route Reflector client"; | | "Configure a neighbor as Route Reflector client"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent route-reflector-client from being inherited from the parent"; | | "Prevent route-reflector-client from being inherited from the parent"; |
| } | | } |
| } | | } |
| container accept-route-legacy-rt { | | container accept-route-legacy-rt { |
| presence "Indicates a accept-route-legacy-rt node is configured."; | | presence "Indicates a accept-route-legacy-rt node is configured."; |
| description | | description |
| "Configure a neighbor to support legacy PE for RT-Constraint AF"; | | "Configure a neighbor to support legacy PE for RT-Constraint AF"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent accept-route-legacy-RT from being inherited from the parent"; | | "Prevent accept-route-legacy-RT from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-community-ebgp { | | container send-community-ebgp { |
| presence "Indicates a send-community-ebgp node is configured."; | | presence "Indicates a send-community-ebgp node is configured."; |
| description | | description |
| "Send community attribute to this external neighbor"; | | "Send community attribute to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-community-ebgp from being inherited from the parent"; | | "Prevent send-community-ebgp from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-community-gshut-ebgp { | | container send-community-gshut-ebgp { |
| presence "Indicates a send-community-gshut-ebgp node is configured."; | | presence "Indicates a send-community-gshut-ebgp node is configured."; |
| description | | description |
| "Allow the g-shut community to be sent to this external neighbor"; | | "Allow the g-shut community to be sent to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-community-gshut-ebgp from being inherited from the parent"; | | "Prevent send-community-gshut-ebgp from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-extended-community-ebgp { | | container send-extended-community-ebgp { |
| presence "Indicates a send-extended-community-ebgp node is configured."; | | presence "Indicates a send-extended-community-ebgp node is configured."; |
| description | | description |
| "Send extended community attribute to this external neighbor"; | | "Send extended community attribute to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-extended-community-ebgp from being inherited from parent"; | | "Prevent send-extended-community-ebgp from being inherited from parent"; |
| } | | } |
| } | | } |
| container soft-reconfiguration { | | container soft-reconfiguration { |
| description | | description |
| "Per neighbor soft reconfiguration"; | | "Per neighbor soft reconfiguration"; |
| container inbound { | | container inbound { |
| presence "Indicates a inbound node is configured."; | | presence "Indicates a inbound node is configured."; |
| description | | description |
| "Allow inbound soft reconfiguration for this neighbor"; | | "Allow inbound soft reconfiguration for this neighbor"; |
| container rpki-dropped-only { | | container rpki-dropped-only { |
| must "not(../rpki-tested-only or ../always or ../inheritance-disable)"; | | must "not(../rpki-tested-only or ../always or ../inheritance-disable)"; |
| presence "Indicates a rpki-dropped-only node is configured."; | | presence "Indicates a rpki-dropped-only node is configured."; |
| description | | description |
| "Use soft-reconfig, for paths dropped by route-policy which have RPKI validity state check"; | | "Use soft-reconfig, for paths dropped by route-policy which have RPKI validity state check"; |
| } | | } |
| container rpki-tested-only { | | container rpki-tested-only { |
| must "not(../rpki-dropped-only or ../always or ../inheritance-disable)"; | | must "not(../rpki-dropped-only or ../always or ../inheritance-disable)"; |
| presence "Indicates a rpki-tested-only node is configured."; | | presence "Indicates a rpki-tested-only node is configured."; |
| description | | description |
| "Use soft-reconfig for paths tested or dropped by route-policy which have RPKI validity state check"; | | "Use soft-reconfig for paths tested or dropped by route-policy which have RPKI validity state check"; |
| } | | } |
| container always { | | container always { |
| must "not(../rpki-dropped-only or ../rpki-tested-only or ../inheritance-disable)"; | | must "not(../rpki-dropped-only or ../rpki-tested-only or ../inheritance-disable)"; |
| presence "Indicates a always node is configured."; | | presence "Indicates a always node is configured."; |
| description | | description |
| "Always use soft reconfig, even if route refresh is supported"; | | "Always use soft reconfig, even if route refresh is supported"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../rpki-dropped-only or ../rpki-tested-only or ../always)"; | | must "not(../rpki-dropped-only or ../rpki-tested-only or ../always)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent soft-reconfiguration from being inherited from the parent"; | | "Prevent soft-reconfiguration from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container update { | | container update { |
| description | | description |
| "BGP out bound message"; | | "BGP out bound message"; |
| container out { | | container out { |
| description | | description |
| "BGP out bound message handling"; | | "BGP out bound message handling"; |
| container originator-loopcheck { | | container originator-loopcheck { |
| presence "Indicates a originator-loopcheck node is configured."; | | presence "Indicates a originator-loopcheck node is configured."; |
| description | | description |
| "Loop check for same originator which sent the route"; | | "Loop check for same originator which sent the route"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable originator loop check"; | | "Disable originator loop check"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container advertise { | | container advertise { |
| description | | description |
| "Per neighbor advertisement options"; | | "Per neighbor advertisement options"; |
| container permanent-network { | | container permanent-network { |
| when | | when |
| "../../af-name != 'vpnv4-unicast' and | | "../../af-name != 'vpnv4-unicast' and |
| ../../af-name != 'vpnv4-multicast' and | | ../../af-name != 'vpnv4-multicast' and |
| ../../af-name != 'vpnv4-flowspec' and | | ../../af-name != 'vpnv4-flowspec' and |
| ../../af-name != 'vpnv6-flowspec' and | | ../../af-name != 'vpnv6-flowspec' and |
| ../../af-name != 'vpnv6-multicast' and | | ../../af-name != 'vpnv6-multicast' and |
| ../../af-name != 'vpnv6-unicast' and | | ../../af-name != 'vpnv6-unicast' and |
| ../../af-name != 'l2vpn-evpn' and | | ../../af-name != 'l2vpn-evpn' and |
| ../../af-name != 'l2vpn-mspw' and | | ../../af-name != 'l2vpn-mspw' and |
| ../../af-name != 'l2vpn-vpls-vpws'"; | | ../../af-name != 'l2vpn-vpls-vpws'"; |
| presence "Indicates a permanent-network node is configured."; | | presence "Indicates a permanent-network node is configured."; |
| description | | description |
| "Allow permanent networks for this neighbor"; | | "Allow permanent networks for this neighbor"; |
| } | | } |
| container local-labeled-route { | | container local-labeled-route { |
| when | | when |
| "../../af-name != 'vpnv4-unicast' and | | "../../af-name != 'vpnv4-unicast' and |
| ../../af-name != 'vpnv4-multicast' and | | ../../af-name != 'vpnv4-multicast' and |
| ../../af-name != 'vpnv4-flowspec' and | | ../../af-name != 'vpnv4-flowspec' and |
| ../../af-name != 'vpnv6-flowspec' and | | ../../af-name != 'vpnv6-flowspec' and |
| ../../af-name != 'vpnv6-multicast' and | | ../../af-name != 'vpnv6-multicast' and |
| ../../af-name != 'vpnv6-unicast' and | | ../../af-name != 'vpnv6-unicast' and |
| ../../af-name != 'l2vpn-evpn' and | | ../../af-name != 'l2vpn-evpn' and |
| ../../af-name != 'l2vpn-mspw' and | | ../../af-name != 'l2vpn-mspw' and |
| ../../af-name != 'l2vpn-vpls-vpws'"; | | ../../af-name != 'l2vpn-vpls-vpws'"; |
| presence "Indicates a local-labeled-route node is configured."; | | presence "Indicates a local-labeled-route node is configured."; |
| description | | description |
| "Advertisement of routes with local-label"; | | "Advertisement of routes with local-label"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise routes with local-label via Unicast SAFI"; | | "Do not advertise routes with local-label via Unicast SAFI"; |
| } | | } |
| } | | } |
| container vpnv4 { | | container vpnv4 { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "VPNv4 Address Family"; | | "VPNv4 Address Family"; |
| container unicast { | | container unicast { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container enable { | | container enable { |
| presence "Indicates an enable node is configured."; | | presence "Indicates an enable node is configured."; |
| description | | description |
| "Enable advertise vpnv4 unicast"; | | "Enable advertise vpnv4 unicast"; |
| container re-originated { | | container re-originated { |
| presence "Indicates a re-originated node is configured."; | | presence "Indicates a re-originated node is configured."; |
| description | | description |
| "Advertise re-orignated and local routes only"; | | "Advertise re-orignated and local routes only"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Advertise re-originated and local routes with stitching Route-Targets"; | | "Advertise re-originated and local routes with stitching Route-Targets"; |
| } | | } |
| } | | } |
| } | | } |
| container imported-from-default-vrf { | | container imported-from-default-vrf { |
| description | | description |
| "Default VRF imported routes"; | | "Default VRF imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of default VRF imported routes"; | | "Disable advertisement of default VRF imported routes"; |
| } | | } |
| } | | } |
| container imported-from-vrf { | | container imported-from-vrf { |
| description | | description |
| "VRF extranet imported routes"; | | "VRF extranet imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF extranet imported routes"; | | "Disable advertisement of VRF extranet imported routes"; |
| } | | } |
| } | | } |
| container imported-from-bridgedomain { | | container imported-from-bridgedomain { |
| description | | description |
| "VRF EVPN extranet imported routes "; | | "VRF EVPN extranet imported routes "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF EVPN extranet imported routes"; | | "Disable advertisement of VRF EVPN extranet imported routes"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container vpnv6 { | | container vpnv6 { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "VPNv6 Address Family"; | | "VPNv6 Address Family"; |
| container unicast { | | container unicast { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container enable { | | container enable { |
| presence "Indicates an enable node is configured."; | | presence "Indicates an enable node is configured."; |
| description | | description |
| "Enable advertise vpnv6 unicast"; | | "Enable advertise vpnv6 unicast"; |
| container re-originated { | | container re-originated { |
| presence "Indicates a re-originated node is configured."; | | presence "Indicates a re-originated node is configured."; |
| description | | description |
| "Advertise Re-orignated routes only"; | | "Advertise Re-orignated routes only"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Advertise re-originated routes with stitching Route-Targets"; | | "Advertise re-originated routes with stitching Route-Targets"; |
| } | | } |
| } | | } |
| } | | } |
| container imported-from-default-vrf { | | container imported-from-default-vrf { |
| description | | description |
| "Default VRF imported routes"; | | "Default VRF imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of default VRF imported routes"; | | "Disable advertisement of default VRF imported routes"; |
| } | | } |
| } | | } |
| container imported-from-vrf { | | container imported-from-vrf { |
| description | | description |
| "VRF extranet imported routes"; | | "VRF extranet imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF extranet imported routes"; | | "Disable advertisement of VRF extranet imported routes"; |
| } | | } |
| } | | } |
| container imported-from-bridgedomain { | | container imported-from-bridgedomain { |
| description | | description |
| "VRF EVPN extranet imported routes"; | | "VRF EVPN extranet imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF EVPN extranet imported routes"; | | "Disable advertisement of VRF EVPN extranet imported routes"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container l2vpn { | | container l2vpn { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "L2VPN Address Family"; | | "L2VPN Address Family"; |
| container evpn { | | container evpn { |
| when "../../../af-name = 'l2vpn-evpn'"; | | when "../../../af-name = 'l2vpn-evpn'"; |
| presence "Indicates a evpn node is configured."; | | presence "Indicates a evpn node is configured."; |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container re-originated { | | container re-originated { |
| presence "Indicates a re-originated node is configured."; | | presence "Indicates a re-originated node is configured."; |
| description | | description |
| "Advertise Re-orignated routes only"; | | "Advertise Re-orignated routes only"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Advertise re-originated routes with stitching Route-Targets"; | | "Advertise re-originated routes with stitching Route-Targets"; |
| } | | } |
| } | | } |
| } | | } |
| container evpn-disable { | | container evpn-disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Advertisement of selected SAFI"; | | "Disable Advertisement of selected SAFI"; |
| } | | } |
| container vpls-vpws { | | container vpls-vpws { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Advertisement of selected SAFI"; | | "Disable Advertisement of selected SAFI"; |
| } | | } |
| } | | } |
| container mspw { | | container mspw { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Advertisement of selected SAFI"; | | "Disable Advertisement of selected SAFI"; |
| } | | } |
| } | | } |
| container gateway-ip-disable { | | container gateway-ip-disable { |
| when "../../../af-name = 'l2vpn-evpn'"; | | when "../../../af-name = 'l2vpn-evpn'"; |
| presence "Indicates a gateway-ip-disable node is configured."; | | presence "Indicates a gateway-ip-disable node is configured."; |
| description | | description |
| "Disable advertisement of non-zero EVPN Gateway-IP"; | | "Disable advertisement of non-zero EVPN Gateway-IP"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent EVPN Gateway-IP disable being inherited from a parent group"; | | "Prevent EVPN Gateway-IP disable being inherited from a parent group"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container encapsulation-type { | | container encapsulation-type { |
| when | | when |
| "../af-name = 'ipv4-unicast' or | | "../af-name = 'ipv4-unicast' or |
| ../af-name = 'ipv6-unicast' or | | ../af-name = 'ipv6-unicast' or |
| ../af-name = 'vpnv4-unicast' or | | ../af-name = 'vpnv4-unicast' or |
| ../af-name = 'vpnv6-unicast' or | | ../af-name = 'vpnv6-unicast' or |
| ../af-name = 'l2vpn-evpn'"; | | ../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "Specify encapsulation type"; | | "Specify encapsulation type"; |
| container vxlan { | | container vxlan { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| must "not(../srv6)"; | | must "not(../srv6)"; |
| presence "Indicates a vxlan node is configured."; | | presence "Indicates a vxlan node is configured."; |
| description | | description |
| "VxLAN encapsulation"; | | "VxLAN encapsulation"; |
| } | | } |
| container srv6 { | | container srv6 { |
| when "../../af-name != 'l2vpn-evpn'"; | | when "../../af-name != 'l2vpn-evpn'"; |
| must "not(../vxlan)"; | | must "not(../vxlan)"; |
| presence "Indicates a srv6 node is configured."; | | presence "Indicates a srv6 node is configured."; |
| description | | description |
| "SRv6 encapsulation"; | | "SRv6 encapsulation"; |
| } | | } |
| } | | } |
| container segment-routing { | | container segment-routing { |
| when "../af-name = 'vpnv4-unicast'"; | | when "../af-name = 'vpnv4-unicast'"; |
| description | | description |
| "enable segment-routing srv6 version 4"; | | "enable segment-routing srv6 version 4"; |
| container srv6 { | | container srv6 { |
| description | | description |
| "srv6 version 4"; | | "srv6 version 4"; |
| container prefix-sid-type4 { | | container prefix-sid-type4 { |
| presence "Indicates a prefix-sid-type4 node is configured."; | | presence "Indicates a prefix-sid-type4 node is configured."; |
| description | | description |
| "Enable prefix sid version 4 encoding"; | | "Enable prefix sid version 4 encoding"; |
| } | | } |
| } | | } |
| } | | } |
| container import { | | container import { |
| when "../af-name = 'vpnv4-unicast' or ../af-name = 'vpnv6-unicast' or ../af-name = 'l2vpn-evpn'"; | | when "../af-name = 'vpnv4-unicast' or ../af-name = 'vpnv6-unicast' or ../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "Import options for neighbor address-family routes"; | | "Import options for neighbor address-family routes"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Import routes using stitching RTs"; | | "Import routes using stitching RTs"; |
| container re-originate { | | container re-originate { |
| presence "Indicates a re-originate node is configured."; | | presence "Indicates a re-originate node is configured."; |
| description | | description |
| "Re-originate imported routes"; | | "Re-originate imported routes"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Reoriginate imported routes by attaching stitching RTs"; | | "Reoriginate imported routes by attaching stitching RTs"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf weight { | | leaf weight { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "default weight"; | | "default weight"; |
| } | | } |
| } | | } |
| description | | description |
| "Set default weight for routes from this neighbor"; | | "Set default weight for routes from this neighbor"; |
| } | | } |
| container allowas-in { | | container allowas-in { |
| presence "Indicates a allowas-in node is configured."; | | presence "Indicates a allowas-in node is configured."; |
| description | | description |
| "Allow as-path with my AS present in it"; | | "Allow as-path with my AS present in it"; |
| leaf number-of-occurences { | | leaf number-of-occurences { |
| type uint32 { | | type uint32 { |
| range "1..10" { | | range "1..10" { |
| description | | description |
| "Number of occurences of AS number"; | | "Number of occurences of AS number"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of occurences of AS number"; | | "Number of occurences of AS number"; |
| } | | } |
| } | | } |
| container allowconfedas-in { | | container allowconfedas-in { |
| presence "Indicates a allowconfedas-in node is configured."; | | presence "Indicates a allowconfedas-in node is configured."; |
| description | | description |
| "Allow as-path with my confederation AS present in it"; | | "Allow as-path with my confederation AS present in it"; |
| leaf number-of-occurences { | | leaf number-of-occurences { |
| type uint32 { | | type uint32 { |
| range "1..10" { | | range "1..10" { |
| description | | description |
| "Number of occurences of confederation AS number"; | | "Number of occurences of confederation AS number"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of occurences of confederation AS number"; | | "Number of occurences of confederation AS number"; |
| } | | } |
| } | | } |
| container long-lived-graceful-restart { | | container long-lived-graceful-restart { |
| description | | description |
| "Enable long lived graceful restart support"; | | "Enable long lived graceful restart support"; |
| container stale-time { | | container stale-time { |
| description | | description |
| "Maximum time to wait before purging long-lived stale routes"; | | "Maximum time to wait before purging long-lived stale routes"; |
| leaf send { | | leaf send { |
| type uint32 { | | type uint32 { |
| range "0..16777215" { | | range "0..16777215" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Stale-time sent in LLGR Capability"; | | "Stale-time sent in LLGR Capability"; |
| } | | } |
| leaf accept { | | leaf accept { |
| type uint32 { | | type uint32 { |
| range "0..16777215" { | | range "0..16777215" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum stale-time acceptable from neighbor"; | | "Maximum stale-time acceptable from neighbor"; |
| } | | } |
| } | | } |
| container capable { | | container capable { |
| presence "Indicates a capable node is configured."; | | presence "Indicates a capable node is configured."; |
| description | | description |
| "Treat neighbor as LLGR capable"; | | "Treat neighbor as LLGR capable"; |
| } | | } |
| } | | } |
| container as-override { | | container as-override { |
| presence "Indicates a as-override node is configured."; | | presence "Indicates a as-override node is configured."; |
| description | | description |
| "Override matching AS-number while sending update"; | | "Override matching AS-number while sending update"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent as-override from being inherited from the parent"; | | "Prevent as-override from being inherited from the parent"; |
| } | | } |
| } | | } |
| container aigp { | | container aigp { |
| presence "Indicates a aigp node is configured."; | | presence "Indicates a aigp node is configured."; |
| description | | description |
| "Enable AIGP for this neighbor "; | | "Enable AIGP for this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable AIGP"; | | "Disable AIGP"; |
| } | | } |
| } | | } |
| container aigp-send { | | container aigp-send { |
| description | | description |
| "Copy AIGP"; | | "Copy AIGP"; |
| container cost-community { | | container cost-community { |
| must "(cost-community-id and poi) or disable"; | | must "(cost-community-id and poi) or disable"; |
| presence "Indicates a cost-community node is configured."; | | presence "Indicates a cost-community node is configured."; |
| description | | description |
| "Send AIGP value in Cost Community"; | | "Send AIGP value in Cost Community"; |
| leaf cost-community-id { | | leaf cost-community-id { |
| type uint32 { | | type uint32 { |
| range "0..255" { | | range "0..255" { |
| description | | description |
| "Cost community ID"; | | "Cost community ID"; |
| } | | } |
| } | | } |
| must "not(../disable)"; | | must "not(../disable)"; |
| description | | description |
| "Cost community ID"; | | "Cost community ID"; |
| } | | } |
| container poi { | | container poi { |
| must "(igp-cost or pre-bestpath) and not(igp-cost and pre-bestpath)"; | | must "(igp-cost or pre-bestpath) and not(igp-cost and pre-bestpath)"; |
| presence "Indicates a poi node is configured."; | | presence "Indicates a poi node is configured."; |
| description | | description |
| "Point of insertion for bestpath calculation"; | | "Point of insertion for bestpath calculation"; |
| container igp-cost { | | container igp-cost { |
| presence "Indicates a igp-cost node is configured."; | | presence "Indicates a igp-cost node is configured."; |
| description | | description |
| "Cost community is used after IGP distance to next hop"; | | "Cost community is used after IGP distance to next hop"; |
| container transitive { | | container transitive { |
| presence "Indicates a transitive node is configured."; | | presence "Indicates a transitive node is configured."; |
| description | | description |
| "Enable transitive cost community"; | | "Enable transitive cost community"; |
| } | | } |
| } | | } |
| container pre-bestpath { | | container pre-bestpath { |
| presence "Indicates a pre-bestpath node is configured."; | | presence "Indicates a pre-bestpath node is configured."; |
| description | | description |
| "Cost community is first step in best path calculation"; | | "Cost community is first step in best path calculation"; |
| container transitive { | | container transitive { |
| presence "Indicates a transitive node is configured."; | | presence "Indicates a transitive node is configured."; |
| description | | description |
| "Enable transitive cost community"; | | "Enable transitive cost community"; |
| } | | } |
| } | | } |
| } | | } |
| container disable { | | container disable { |
| must "not(../cost-community-id)"; | | must "not(../cost-community-id)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable aigp send cost-community"; | | "Disable aigp send cost-community"; |
| } | | } |
| } | | } |
| container med { | | container med { |
| presence "Indicates a med node is configured."; | | presence "Indicates a med node is configured."; |
| description | | description |
| "Send AIGP value in MED"; | | "Send AIGP value in MED"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable aigp send med"; | | "Disable aigp send med"; |
| } | | } |
| } | | } |
| } | | } |
| container validation { | | container validation { |
| when "../af-name = 'ipv4-flowspec' or ../af-name = 'ipv6-flowspec'"; | | when "../af-name = 'ipv4-flowspec' or ../af-name = 'ipv6-flowspec'"; |
| presence "Indicates a validation node is configured."; | | presence "Indicates a validation node is configured."; |
| description | | description |
| "Flowspec Validation for this neighbor "; | | "Flowspec Validation for this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Flowspec Validation"; | | "Disable Flowspec Validation"; |
| } | | } |
| container redirect { | | container redirect { |
| description | | description |
| "Flowspec Redirect nexthop Validation"; | | "Flowspec Redirect nexthop Validation"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Flowspec Redirect nexthop Validation"; | | "Disable Flowspec Redirect nexthop Validation"; |
| } | | } |
| } | | } |
| } | | } |
| container send-multicast-attributes { | | container send-multicast-attributes { |
| when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv4-labeled-unicast' or ../af-name = 'ipv6-labeled-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-multicast' or ../af-name = 'ipv4-mvpn' or ../af-name = 'ipv6-mvpn'"; | | when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv4-labeled-unicast' or ../af-name = 'ipv6-labeled-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-multicast' or ../af-name = 'ipv4-mvpn' or ../af-name = 'ipv6-mvpn'"; |
| presence "Indicates a send-multicast-attributes node is configured."; | | presence "Indicates a send-multicast-attributes node is configured."; |
| description | | description |
| "Send multicast attributes to this neighbor "; | | "Send multicast attributes to this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable send multicast attribute"; | | "Disable send multicast attribute"; |
| } | | } |
| } | | } |
| container signalling { | | container signalling { |
| description | | description |
| "Signalling protocols to disable, BGP or LDP"; | | "Signalling protocols to disable, BGP or LDP"; |
| container bgp { | | container bgp { |
| description | | description |
| "Select BGP to disable"; | | "Select BGP to disable"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Signalling type"; | | "Disable Signalling type"; |
| } | | } |
| } | | } |
| container ldp { | | container ldp { |
| description | | description |
| "Select LDP to disable"; | | "Select LDP to disable"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Signalling type"; | | "Disable Signalling type"; |
| } | | } |
| } | | } |
| } | | } |
| container accept-own { | | container accept-own { |
| presence "Indicates a accept-own node is configured."; | | presence "Indicates a accept-own node is configured."; |
| description | | description |
| "Handle self-originated routes with Accept-Own community"; | | "Handle self-originated routes with Accept-Own community"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent item being inherited from a parent group"; | | "Prevent item being inherited from a parent group"; |
| } | | } |
| } | | } |
| container cluster-id { | | container cluster-id { |
| description | | description |
| "Allow routes with first cluster-id in list is same as the router's cluster id"; | | "Allow routes with first cluster-id in list is same as the router's cluster id"; |
| container allow-equal { | | container allow-equal { |
| presence "Indicates a allow-equal node is configured."; | | presence "Indicates a allow-equal node is configured."; |
| description | | description |
| "Accept routes with first cluster-id in list is same as the router's cluster id"; | | "Accept routes with first cluster-id in list is same as the router's cluster id"; |
| container disable { | | container disable { |
| presence "Indicates a allow-equal node is configured."; | | presence "Indicates a allow-equal node is configured."; |
| description | | description |
| "Prevent the configuration from being inherited."; | | "Prevent the configuration from being inherited."; |
| } | | } |
| } | | } |
| } | | } |
| container site-of-origin { | | container site-of-origin { |
| description | | description |
| "Site-of-Origin extended community associated with the neighbor"; | | "Site-of-Origin extended community associated with the neighbor"; |
| container two-byte-as { | | container two-byte-as { |
| must "not(../four-byte-as or ../ip-address)"; | | must "not(../four-byte-as or ../ip-address)"; |
| presence "Indicates a two-byte-as node is configured."; | | presence "Indicates a two-byte-as node is configured."; |
| description | | description |
| "two-byte-as Site-of-Origin"; | | "two-byte-as Site-of-Origin"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| mandatory true; | | mandatory true; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| container four-byte-as { | | container four-byte-as { |
| must "not(../two-byte-as or ../ip-address)"; | | must "not(../two-byte-as or ../ip-address)"; |
| presence "Indicates a four-byte-as node is configured."; | | presence "Indicates a four-byte-as node is configured."; |
| description | | description |
| "four-byte-as Site-of-Origin"; | | "four-byte-as Site-of-Origin"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| mandatory true; | | mandatory true; |
| description | | description |
| "4-byte AS number"; | | "4-byte AS number"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| container ip-address { | | container ip-address { |
| must "not(../two-byte-as or ../four-byte-as)"; | | must "not(../two-byte-as or ../four-byte-as)"; |
| presence "Indicates a ip-address node is configured."; | | presence "Indicates a ip-address node is configured."; |
| description | | description |
| "configure this node"; | | "configure this node"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| mandatory true; | | mandatory true; |
| description | | description |
| "configure this node"; | | "configure this node"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IPv4Address:index (hex or decimal format)"; | | "IPv4Address:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "IPv4Address:index (hex or decimal format)"; | | "IPv4Address:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container additional-paths { | | container additional-paths { |
| description | | description |
| "Additional paths capability"; | | "Additional paths capability"; |
| container receive { | | container receive { |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Additional paths Receive capability"; | | "Additional paths Receive capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Prevent additional-paths receive from being inherited from the parent"; | | "Prevent additional-paths receive from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send { | | container send { |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Additional paths Send capability"; | | "Additional paths Send capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Prevent additional-paths receive from being inherited from the parent"; | | "Prevent additional-paths receive from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container session-groups { | | container session-groups { |
| description | | description |
| "Specify a Session group"; | | "Specify a Session group"; |
| list session-group { | | list session-group { |
| key "session-group-name"; | | key "session-group-name"; |
| description | | description |
| "Specify a Session group"; | | "Specify a Session group"; |
| leaf session-group-name { | | leaf session-group-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Session group name"; | | "Session group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify a Session group"; | | "Specify a Session group"; |
| } | | } |
| leaf remote-as { | | leaf remote-as { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| leaf remote-as-list { | | leaf remote-as-list { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "as-list name"; | | "as-list name"; |
| } | | } |
| } | | } |
| description | | description |
| "Remote as-list configuration"; | | "Remote as-list configuration"; |
| } | | } |
| container use { | | container use { |
| description | | description |
| "Inherit configuration from a group"; | | "Inherit configuration from a group"; |
| leaf session-group { | | leaf session-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Session group name"; | | "Session group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit address-family independent config from a session-group"; | | "Inherit address-family independent config from a session-group"; |
| } | | } |
| } | | } |
| container advertisement-interval { | | container advertisement-interval { |
| presence "Indicates a advertisement-interval node is configured."; | | presence "Indicates a advertisement-interval node is configured."; |
| description | | description |
| "Minimum interval between sending BGP routing updates"; | | "Minimum interval between sending BGP routing updates"; |
| leaf time-in-seconds { | | leaf time-in-seconds { |
| type uint32 { | | type uint32 { |
| range "0..600" { | | range "0..600" { |
| description | | description |
| "time in seconds"; | | "time in seconds"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Minimum interval between sending BGP routing updates"; | | "Minimum interval between sending BGP routing updates"; |
| } | | } |
| leaf time-in-milliseconds { | | leaf time-in-milliseconds { |
| type uint32 { | | type uint32 { |
| range "0..999" { | | range "0..999" { |
| description | | description |
| "time in milliseconds"; | | "time in milliseconds"; |
| } | | } |
| } | | } |
| description | | description |
| "time in milliseconds"; | | "time in milliseconds"; |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Up to 256 characters describing this neighbor"; | | "Up to 256 characters describing this neighbor"; |
| } | | } |
| } | | } |
| description | | description |
| "Neighbor specific description"; | | "Neighbor specific description"; |
| } | | } |
| container ignore-connected-check { | | container ignore-connected-check { |
| presence "Indicates a ignore-connected-check node is configured."; | | presence "Indicates a ignore-connected-check node is configured."; |
| description | | description |
| "Bypass the directly connected nexthop check for single-hop eBGP peering"; | | "Bypass the directly connected nexthop check for single-hop eBGP peering"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ignore-connected-check from being inherited from the parent"; | | "Prevent ignore-connected-check from being inherited from the parent"; |
| } | | } |
| } | | } |
| container internal-vpn-client { | | container internal-vpn-client { |
| presence "Indicates a internal-vpn-client node is configured."; | | presence "Indicates a internal-vpn-client node is configured."; |
| description | | description |
| "Preserve iBGP CE neighbor path in ATTR_SET across VPN core"; | | "Preserve iBGP CE neighbor path in ATTR_SET across VPN core"; |
| } | | } |
| container ebgp-multihop { | | container ebgp-multihop { |
| presence "Indicates a ebgp-multihop node is configured."; | | presence "Indicates a ebgp-multihop node is configured."; |
| description | | description |
| "Allow EBGP neighbors not on directly connected networks"; | | "Allow EBGP neighbors not on directly connected networks"; |
| leaf maximum-hop-count { | | leaf maximum-hop-count { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "maximum hop count"; | | "maximum hop count"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "maximum hop count"; | | "maximum hop count"; |
| } | | } |
| container mpls { | | container mpls { |
| presence "Indicates a mpls node is configured."; | | presence "Indicates a mpls node is configured."; |
| description | | description |
| "Disable BGP MPLS forwarding"; | | "Disable BGP MPLS forwarding"; |
| } | | } |
| } | | } |
| container tcp { | | container tcp { |
| description | | description |
| "TCP session configuration commands"; | | "TCP session configuration commands"; |
| container mss { | | container mss { |
| must "initial-mss or inheritance-disable"; | | must "initial-mss or inheritance-disable"; |
| presence "Indicates a mss node is configured."; | | presence "Indicates a mss node is configured."; |
| description | | description |
| "Maximum Segment Size"; | | "Maximum Segment Size"; |
| leaf initial-mss { | | leaf initial-mss { |
| type uint32 { | | type uint32 { |
| range "68..10000" { | | range "68..10000" { |
| description | | description |
| "TCP initial maximum segment size"; | | "TCP initial maximum segment size"; |
| } | | } |
| } | | } |
| description | | description |
| "TCP initial maximum segment size"; | | "TCP initial maximum segment size"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent tcp mss from being inherited from the parent"; | | "Prevent tcp mss from being inherited from the parent"; |
| } | | } |
| } | | } |
| container ip-only-preferred { | | container ip-only-preferred { |
| presence "Indicates an ip-only-preferred node is configured."; | | presence "Indicates an ip-only-preferred node is configured."; |
| description | | description |
| "Prefer to send BGP control plane traffic on IP"; | | "Prefer to send BGP control plane traffic on IP"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates an inheritance-disable node is configured."; | | presence "Indicates an inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| } | | } |
| container bmp-activate { | | container bmp-activate { |
| description | | description |
| "Enable BMP logging for this neighbor"; | | "Enable BMP logging for this neighbor"; |
| container servers { | | container servers { |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| list server { | | list server { |
| key "server-id"; | | key "server-id"; |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| leaf server-id { | | leaf server-id { |
| type uint32 { | | type uint32 { |
| range "1..8" { | | range "1..8" { |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| } | | } |
| } | | } |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container bfd { | | container bfd { |
| description | | description |
| "Configure BFD parameters"; | | "Configure BFD parameters"; |
| container fast-detect { | | container fast-detect { |
| presence "Indicates a fast-detect node is configured."; | | presence "Indicates a fast-detect node is configured."; |
| description | | description |
| "Enable Fast detection"; | | "Enable Fast detection"; |
| container strict-mode { | | container strict-mode { |
| presence "Indicates a strict-mode node is configured."; | | presence "Indicates a strict-mode node is configured."; |
| description | | description |
| "Hold down neighbor session until BFD session is up"; | | "Hold down neighbor session until BFD session is up"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Prevent bfd settings from being inherited from the parent"; | | "Prevent bfd settings from being inherited from the parent"; |
| } | | } |
| } | | } |
| leaf minimum-interval { | | leaf minimum-interval { |
| type uint32 { | | type uint32 { |
| range "3..30000" { | | range "3..30000" { |
| description | | description |
| "hello interval in milli-seconds"; | | "hello interval in milli-seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Hello interval"; | | "Hello interval"; |
| } | | } |
| leaf multiplier { | | leaf multiplier { |
| type uint32 { | | type uint32 { |
| range "2..16" { | | range "2..16" { |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| container keychain { | | container keychain { |
| must "name or inheritance-disable"; | | must "name or inheritance-disable"; |
| presence "Indicates a keychain node is configured."; | | presence "Indicates a keychain node is configured."; |
| description | | description |
| "Set keychain based authentication"; | | "Set keychain based authentication"; |
| leaf name { | | leaf name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent keychain from being inherited from parent"; | | "Prevent keychain from being inherited from parent"; |
| } | | } |
| } | | } |
| container local-as { | | container local-as { |
| must "as-number or inheritance-disable"; | | must "as-number or inheritance-disable"; |
| presence "Indicates a local-as node is configured."; | | presence "Indicates a local-as node is configured."; |
| description | | description |
| "Specify local AS number"; | | "Specify local AS number"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| container no-prepend { | | container no-prepend { |
| presence "Indicates a no-prepend node is configured."; | | presence "Indicates a no-prepend node is configured."; |
| description | | description |
| "Do not prepend local AS to announcements from this neighbor"; | | "Do not prepend local AS to announcements from this neighbor"; |
| container replace-as { | | container replace-as { |
| presence "Indicates a replace-as node is configured."; | | presence "Indicates a replace-as node is configured."; |
| description | | description |
| "Prepend only local AS to announcements to this neighbor"; | | "Prepend only local AS to announcements to this neighbor"; |
| container dual-as { | | container dual-as { |
| presence "Indicates a dual-as node is configured."; | | presence "Indicates a dual-as node is configured."; |
| description | | description |
| "Dual-AS mode"; | | "Dual-AS mode"; |
| } | | } |
| } | | } |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local AS from being inherited from parent"; | | "Prevent local AS from being inherited from parent"; |
| } | | } |
| } | | } |
| container password { | | container password { |
| must "encrypted or inheritance-disable"; | | must "encrypted or inheritance-disable"; |
| presence "Indicates a password node is configured."; | | presence "Indicates a password node is configured."; |
| description | | description |
| "Set a password"; | | "Set a password"; |
| leaf encrypted { | | leaf encrypted { |
| type xr:Proprietary-password; | | type xr:Proprietary-password; |
| description | | description |
| "Specifies an ENCRYPTED password will follow"; | | "Specifies an ENCRYPTED password will follow"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent password from being inherited from parent"; | | "Prevent password from being inherited from parent"; |
| } | | } |
| } | | } |
| container receive-buffer-size { | | container receive-buffer-size { |
| presence "Indicates a receive-buffer-size node is configured."; | | presence "Indicates a receive-buffer-size node is configured."; |
| description | | description |
| "Set socket and BGP receive buffer size"; | | "Set socket and BGP receive buffer size"; |
| leaf receive-socket-buffer-size { | | leaf receive-socket-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "Receive socket buffer size in bytes"; | | "Receive socket buffer size in bytes"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Set socket and BGP receive buffer size"; | | "Set socket and BGP receive buffer size"; |
| } | | } |
| leaf bgp-read-buffer-size { | | leaf bgp-read-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| container send-buffer-size { | | container send-buffer-size { |
| presence "Indicates a send-buffer-size node is configured."; | | presence "Indicates a send-buffer-size node is configured."; |
| description | | description |
| "Set socket and BGP send buffer size"; | | "Set socket and BGP send buffer size"; |
| leaf send-socket-buffer-size { | | leaf send-socket-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "Send socket buffer size in bytes"; | | "Send socket buffer size in bytes"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Set socket and BGP send buffer size"; | | "Set socket and BGP send buffer size"; |
| } | | } |
| leaf bgp-write-buffer-size { | | leaf bgp-write-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| } | | } |
| container shutdown { | | container shutdown { |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Administratively shut down this neighbor"; | | "Administratively shut down this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent this neighbor being shutdown, even if its parent is"; | | "Prevent this neighbor being shutdown, even if its parent is"; |
| } | | } |
| } | | } |
| container fast-fallover { | | container fast-fallover { |
| presence "Indicates a fast-fallover node is configured."; | | presence "Indicates a fast-fallover node is configured."; |
| description | | description |
| "Force neighbor to be directly connected. Bring neighbor down if its interface goes down"; | | "Force neighbor to be directly connected. Bring neighbor down if its interface goes down"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent this neighbor from inheriting this config from a group it is in"; | | "Prevent this neighbor from inheriting this config from a group it is in"; |
| } | | } |
| } | | } |
| container timers { | | container timers { |
| presence "Indicates a timers node is configured."; | | presence "Indicates a timers node is configured."; |
| description | | description |
| "BGP per neighbor timers"; | | "BGP per neighbor timers"; |
| leaf keepalive-interval { | | leaf keepalive-interval { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "Keepalive interval"; | | "Keepalive interval"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "BGP timers"; | | "BGP timers"; |
| } | | } |
| leaf holdtime { | | leaf holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Holdtime."; | | "Holdtime."; |
| } | | } |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Holdtime. Set 0 to disable keepalives/hold time."; | | "Holdtime. Set 0 to disable keepalives/hold time."; |
| } | | } |
| leaf minimum-acceptable-holdtime { | | leaf minimum-acceptable-holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Minimum acceptable holdtime from neighbor."; | | "Minimum acceptable holdtime from neighbor."; |
| } | | } |
| } | | } |
| } | | } |
| description | | description |
| "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; | | "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| container local { | | container local { |
| description | | description |
| "Configure local parameter"; | | "Configure local parameter"; |
| container address { | | container address { |
| must "ip-address or inheritance-disable"; | | must "ip-address or inheritance-disable"; |
| presence "Indicates a address node is configured."; | | presence "Indicates a address node is configured."; |
| description | | description |
| "use configured local address for bgp peering"; | | "use configured local address for bgp peering"; |
| leaf ip-address { | | leaf ip-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IPv4 address"; | | "IPv4 address"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local address from being inherited from parent"; | | "Prevent local address from being inherited from parent"; |
| } | | } |
| } | | } |
| } | | } |
| container log { | | container log { |
| description | | description |
| "Logging update messages per neighbor"; | | "Logging update messages per neighbor"; |
| container message { | | container message { |
| description | | description |
| "Logging update/notification messages per neighbor"; | | "Logging update/notification messages per neighbor"; |
| container in { | | container in { |
| description | | description |
| "Inbound log messages"; | | "Inbound log messages"; |
| leaf message-log-buffer-size { | | leaf message-log-buffer-size { |
| type uint32 { | | type uint32 { |
| range "1..500" { | | range "1..500" { |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| } | | } |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable inbound message logging"; | | "Disable inbound message logging"; |
| } | | } |
| container inheritance-diable { | | container inheritance-diable { |
| presence "Indicates a inheritance-diable node is configured."; | | presence "Indicates a inheritance-diable node is configured."; |
| description | | description |
| "Prevents the msg log from being inherited from the parent"; | | "Prevents the msg log from being inherited from the parent"; |
| } | | } |
| } | | } |
| container out { | | container out { |
| description | | description |
| "Outbound log messages"; | | "Outbound log messages"; |
| leaf message-log-buffer-size { | | leaf message-log-buffer-size { |
| type uint32 { | | type uint32 { |
| range "1..500" { | | range "1..500" { |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| } | | } |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable outbound message logging"; | | "Disable outbound message logging"; |
| } | | } |
| container inheritance-diable { | | container inheritance-diable { |
| presence "Indicates a inheritance-diable node is configured."; | | presence "Indicates a inheritance-diable node is configured."; |
| description | | description |
| "Prevents the msg log from being inherited from the parent"; | | "Prevents the msg log from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container neighbor { | | container neighbor { |
| description | | description |
| "Log neighbor state info"; | | "Log neighbor state info"; |
| container changes { | | container changes { |
| description | | description |
| "Log neighbor state changes"; | | "Log neighbor state changes"; |
| container detail { | | container detail { |
| must "not(../disable or ../inheritance-disable)"; | | must "not(../disable or ../inheritance-disable)"; |
| presence "Indicates a detail node is configured."; | | presence "Indicates a detail node is configured."; |
| description | | description |
| "detail"; | | "detail"; |
| } | | } |
| container disable { | | container disable { |
| must "not(../detail or ../inheritance-disable)"; | | must "not(../detail or ../inheritance-disable)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable"; | | "disable"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../detail or ../disable)"; | | must "not(../detail or ../disable)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevents the log state changes from being inherited from the parent"; | | "Prevents the log state changes from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf update-source { | | leaf update-source { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Source of routing updates"; | | "Source of routing updates"; |
| } | | } |
| container local-address-subnet { | | container local-address-subnet { |
| description | | description |
| "Local address subnet of routing updates"; | | "Local address subnet of routing updates"; |
| leaf ip-address { | | leaf ip-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IPv6 address and mask or masklength"; | | "IPv6 address and mask or masklength"; |
| } | | } |
| leaf mask-length { | | leaf mask-length { |
| type uint32 { | | type uint32 { |
| range "0..128" { | | range "0..128" { |
| description | | description |
| "IP address mask length"; | | "IP address mask length"; |
| } | | } |
| } | | } |
| description | | description |
| "IP address and mask length"; | | "IP address and mask length"; |
| } | | } |
| } | | } |
| container dmz-link-bandwidth { | | container dmz-link-bandwidth { |
| presence "Indicates a dmz-link-bandwidth node is configured."; | | presence "Indicates a dmz-link-bandwidth node is configured."; |
| description | | description |
| "Propagate the DMZ link bandwidth"; | | "Propagate the DMZ link bandwidth"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent dmz-link-bandwidth from being inherited from the parent"; | | "Prevent dmz-link-bandwidth from being inherited from the parent"; |
| } | | } |
| } | | } |
| container ebgp-recv-extcommunity-dmz { | | container ebgp-recv-extcommunity-dmz { |
| presence "Indicates a ebgp-recv-extcommunity-dmz node is configured."; | | presence "Indicates a ebgp-recv-extcommunity-dmz node is configured."; |
| description | | description |
| "Receive extcommunity dmz link bandwidth from ebgp neighbor"; | | "Receive extcommunity dmz link bandwidth from ebgp neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ebgp-send-community-dmz from being inherited from parent"; | | "Prevent ebgp-send-community-dmz from being inherited from parent"; |
| } | | } |
| } | | } |
| container ebgp-send-extcommunity-dmz { | | container ebgp-send-extcommunity-dmz { |
| must "not(cumulative and inheritance-disable)"; | | must "not(cumulative and inheritance-disable)"; |
| presence "Indicates a ebgp-send-extcommunity-dmz node is configured."; | | presence "Indicates a ebgp-send-extcommunity-dmz node is configured."; |
| description | | description |
| "Send extended community dmz link bandwidth to ebgp neighbor"; | | "Send extended community dmz link bandwidth to ebgp neighbor"; |
| container cumulative { | | container cumulative { |
| presence "Indicates a cumulative node is configured."; | | presence "Indicates a cumulative node is configured."; |
| description | | description |
| "Send cumulative community dmz link bandwidth of all multipaths to ebgp neighbor"; | | "Send cumulative community dmz link bandwidth of all multipaths to ebgp neighbor"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ebgp-send-extcommunity-dmz from being inherited from parent"; | | "Prevent ebgp-send-extcommunity-dmz from being inherited from parent"; |
| } | | } |
| } | | } |
| container ttl-security { | | container ttl-security { |
| presence "Indicates a ttl-security node is configured."; | | presence "Indicates a ttl-security node is configured."; |
| description | | description |
| "Enable EBGP TTL security"; | | "Enable EBGP TTL security"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ttl-security from being inherited from the parent"; | | "Prevent ttl-security from being inherited from the parent"; |
| } | | } |
| } | | } |
| container session-open-mode { | | container session-open-mode { |
| description | | description |
| "Establish BGP session using this TCP open mode"; | | "Establish BGP session using this TCP open mode"; |
| container active-only { | | container active-only { |
| must "not(../passive-only or ../both)"; | | must "not(../passive-only or ../both)"; |
| presence "Indicates a active-only node is configured."; | | presence "Indicates a active-only node is configured."; |
| description | | description |
| "Active only"; | | "Active only"; |
| } | | } |
| container passive-only { | | container passive-only { |
| must "not(../active-only or ../both)"; | | must "not(../active-only or ../both)"; |
| presence "Indicates a passive-only node is configured."; | | presence "Indicates a passive-only node is configured."; |
| description | | description |
| "Passive only"; | | "Passive only"; |
| } | | } |
| container both { | | container both { |
| must "not(../active-only or ../passive-only)"; | | must "not(../active-only or ../passive-only)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Prevent session-open-mode being inherited from the parent"; | | "Prevent session-open-mode being inherited from the parent"; |
| } | | } |
| } | | } |
| leaf dscp { | | leaf dscp { |
| type enumeration { | | type enumeration { |
| enum "default" { | | enum "default" { |
| value 0; | | value 0; |
| description | | description |
| "Set packets with default dscp (000000)"; | | "Set packets with default dscp (000000)"; |
| } | | } |
| enum "cs1" { | | enum "cs1" { |
| value 8; | | value 8; |
| description | | description |
| "Set packets with CS1(precedence 1) dscp (001000)"; | | "Set packets with CS1(precedence 1) dscp (001000)"; |
| } | | } |
| enum "af11" { | | enum "af11" { |
| value 10; | | value 10; |
| description | | description |
| "Set packets with AF11 dscp (001010)"; | | "Set packets with AF11 dscp (001010)"; |
| } | | } |
| enum "af12" { | | enum "af12" { |
| value 12; | | value 12; |
| description | | description |
| "Set packets with AF12 dscp (001100)"; | | "Set packets with AF12 dscp (001100)"; |
| } | | } |
| enum "af13" { | | enum "af13" { |
| value 14; | | value 14; |
| description | | description |
| "Set packets with AF13 dscp (001110)"; | | "Set packets with AF13 dscp (001110)"; |
| } | | } |
| enum "cs2" { | | enum "cs2" { |
| value 16; | | value 16; |
| description | | description |
| "Set packets with CS2(precedence 2) dscp (010000)"; | | "Set packets with CS2(precedence 2) dscp (010000)"; |
| } | | } |
| enum "af21" { | | enum "af21" { |
| value 18; | | value 18; |
| description | | description |
| "Set packets with AF21 dscp (010010)"; | | "Set packets with AF21 dscp (010010)"; |
| } | | } |
| enum "af22" { | | enum "af22" { |
| value 20; | | value 20; |
| description | | description |
| "Set packets with AF22 dscp (010100)"; | | "Set packets with AF22 dscp (010100)"; |
| } | | } |
| enum "af23" { | | enum "af23" { |
| value 22; | | value 22; |
| description | | description |
| "Set packets with AF23 dscp (010110)"; | | "Set packets with AF23 dscp (010110)"; |
| } | | } |
| enum "cs3" { | | enum "cs3" { |
| value 24; | | value 24; |
| description | | description |
| "Set packets with CS3(precedence 3) dscp (011000)"; | | "Set packets with CS3(precedence 3) dscp (011000)"; |
| } | | } |
| enum "af31" { | | enum "af31" { |
| value 26; | | value 26; |
| description | | description |
| "Set packets with AF31 dscp (011010)"; | | "Set packets with AF31 dscp (011010)"; |
| } | | } |
| enum "af32" { | | enum "af32" { |
| value 28; | | value 28; |
| description | | description |
| "Set packets with AF32 dscp (011100)"; | | "Set packets with AF32 dscp (011100)"; |
| } | | } |
| enum "af33" { | | enum "af33" { |
| value 30; | | value 30; |
| description | | description |
| "Set packets with AF33 dscp (011110)"; | | "Set packets with AF33 dscp (011110)"; |
| } | | } |
| enum "cs4" { | | enum "cs4" { |
| value 32; | | value 32; |
| description | | description |
| "Set packets with CS4(precedence 4) dscp (100000)"; | | "Set packets with CS4(precedence 4) dscp (100000)"; |
| } | | } |
| enum "af41" { | | enum "af41" { |
| value 34; | | value 34; |
| description | | description |
| "Set packets with AF41 dscp (100010)"; | | "Set packets with AF41 dscp (100010)"; |
| } | | } |
| enum "af42" { | | enum "af42" { |
| value 36; | | value 36; |
| description | | description |
| "Set packets with AF42 dscp (100100)"; | | "Set packets with AF42 dscp (100100)"; |
| } | | } |
| enum "af43" { | | enum "af43" { |
| value 38; | | value 38; |
| description | | description |
| "Set packets with AF43 dscp (100110)"; | | "Set packets with AF43 dscp (100110)"; |
| } | | } |
| enum "cs5" { | | enum "cs5" { |
| value 40; | | value 40; |
| description | | description |
| "Set packets with CS5(precedence 5) dscp (101000)"; | | "Set packets with CS5(precedence 5) dscp (101000)"; |
| } | | } |
| enum "ef" { | | enum "ef" { |
| value 46; | | value 46; |
| description | | description |
| "Set packets with EF dscp (101110)"; | | "Set packets with EF dscp (101110)"; |
| } | | } |
| enum "cs6" { | | enum "cs6" { |
| value 48; | | value 48; |
| description | | description |
| "Set packets with CS6(precedence 6) dscp (110000)"; | | "Set packets with CS6(precedence 6) dscp (110000)"; |
| } | | } |
| enum "cs7" { | | enum "cs7" { |
| value 56; | | value 56; |
| description | | description |
| "Set packets with CS7(precedence 7) dscp (111000)"; | | "Set packets with CS7(precedence 7) dscp (111000)"; |
| } | | } |
| } | | } |
| description | | description |
| "Set IP DSCP (DiffServ CodePoint)"; | | "Set IP DSCP (DiffServ CodePoint)"; |
| } | | } |
| leaf precedence { | | leaf precedence { |
| type enumeration { | | type enumeration { |
| enum "routine" { | | enum "routine" { |
| value 0; | | value 0; |
| description | | description |
| "Set packets with routine precedence (0)"; | | "Set packets with routine precedence (0)"; |
| } | | } |
| enum "priority" { | | enum "priority" { |
| value 1; | | value 1; |
| description | | description |
| "Set packets with priority precedence (1)"; | | "Set packets with priority precedence (1)"; |
| } | | } |
| enum "immediate" { | | enum "immediate" { |
| value 2; | | value 2; |
| description | | description |
| "Set packets with immediate precedence (2)"; | | "Set packets with immediate precedence (2)"; |
| } | | } |
| enum "flash" { | | enum "flash" { |
| value 3; | | value 3; |
| description | | description |
| "Set packets with flash precedence (3)"; | | "Set packets with flash precedence (3)"; |
| } | | } |
| enum "flash-override" { | | enum "flash-override" { |
| value 4; | | value 4; |
| description | | description |
| "Set packets with flash override precedence (4)"; | | "Set packets with flash override precedence (4)"; |
| } | | } |
| enum "critical" { | | enum "critical" { |
| value 5; | | value 5; |
| description | | description |
| "Set packets with critical precedence (5)"; | | "Set packets with critical precedence (5)"; |
| } | | } |
| enum "internet" { | | enum "internet" { |
| value 6; | | value 6; |
| description | | description |
| "Set packets with internetwork control precedence (6)"; | | "Set packets with internetwork control precedence (6)"; |
| } | | } |
| enum "network" { | | enum "network" { |
| value 7; | | value 7; |
| description | | description |
| "Set packets with network control precedence (7)"; | | "Set packets with network control precedence (7)"; |
| } | | } |
| } | | } |
| description | | description |
| "Set precedence"; | | "Set precedence"; |
| } | | } |
| container capability { | | container capability { |
| description | | description |
| "Advertise capability to the peer"; | | "Advertise capability to the peer"; |
| container suppress { | | container suppress { |
| description | | description |
| "Suppress advertising capability to the peer "; | | "Suppress advertising capability to the peer "; |
| container four-byte-as { | | container four-byte-as { |
| presence "Indicates a four-byte-as node is configured."; | | presence "Indicates a four-byte-as node is configured."; |
| description | | description |
| "4-byte-as capability"; | | "4-byte-as capability"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent capability suppress 4-type-as being inherited from the parent"; | | "Prevent capability suppress 4-type-as being inherited from the parent"; |
| } | | } |
| } | | } |
| container all { | | container all { |
| presence "Indicates a all node is configured."; | | presence "Indicates a all node is configured."; |
| description | | description |
| "All capabilities"; | | "All capabilities"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| container extended-nexthop-encoding { | | container extended-nexthop-encoding { |
| presence "Indicates a extended-nexthop-encoding node is configured."; | | presence "Indicates a extended-nexthop-encoding node is configured."; |
| description | | description |
| "Extended-nexthop-encoding capabilities (IETF RFC 5549)"; | | "Extended-nexthop-encoding capabilities (IETF RFC 5549)"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| } | | } |
| container additional-paths { | | container additional-paths { |
| description | | description |
| "Additional paths capability"; | | "Additional paths capability"; |
| container send { | | container send { |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Additional paths Send capability"; | | "Additional paths Send capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise additional paths Send capability"; | | "Do not advertise additional paths Send capability"; |
| } | | } |
| } | | } |
| container receive { | | container receive { |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Additional paths Receive capability"; | | "Additional paths Receive capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise additional paths Receive capability"; | | "Do not advertise additional paths Receive capability"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container graceful-restart { | | container graceful-restart { |
| presence "Indicates a graceful-restart node is configured."; | | presence "Indicates a graceful-restart node is configured."; |
| description | | description |
| "Enable graceful restart support for this neighbor"; | | "Enable graceful restart support for this neighbor"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable graceful restart support for this neighbor"; | | "Disable graceful restart support for this neighbor"; |
| } | | } |
| leaf restart-time { | | leaf restart-time { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart time advertised to the neighbor"; | | "Restart time advertised to the neighbor"; |
| } | | } |
| leaf stalepath-time { | | leaf stalepath-time { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum time to wait for restart of GR capable peer"; | | "Maximum time to wait for restart of GR capable peer"; |
| } | | } |
| } | | } |
| container enforce-first-as { | | container enforce-first-as { |
| presence "Indicates a enforce-first-as node is configured."; | | presence "Indicates a enforce-first-as node is configured."; |
| description | | description |
| "Enforce the first AS for EBGP routes"; | | "Enforce the first AS for EBGP routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not enforce the first AS for EBGP routes"; | | "Do not enforce the first AS for EBGP routes"; |
| } | | } |
| } | | } |
| container cluster-id { | | container cluster-id { |
| description | | description |
| "Enter cluster id for this neighbor"; | | "Enter cluster id for this neighbor"; |
| leaf route-reflector-cluster-id { | | leaf route-reflector-cluster-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Route-Reflector Cluster-id as 32 bit quantity"; | | "Route-Reflector Cluster-id as 32 bit quantity"; |
| } | | } |
| } | | } |
| description | | description |
| "Route-Reflector Cluster-id as 32 bit quantity"; | | "Route-Reflector Cluster-id as 32 bit quantity"; |
| } | | } |
| leaf ip-address { | | leaf ip-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "Route-Reflector Cluster-id in IP address format"; | | "Route-Reflector Cluster-id in IP address format"; |
| } | | } |
| } | | } |
| leaf maximum-peers { | | leaf maximum-peers { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Maximum number of peers"; | | "Maximum number of peers"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum dynamic neighbors"; | | "Maximum dynamic neighbors"; |
| } | | } |
| leaf idle-watch-time { | | leaf idle-watch-time { |
| type uint32 { | | type uint32 { |
| range "30..1800" { | | range "30..1800" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum time to wait for deletion of IDLE state dynamic peer"; | | "Maximum time to wait for deletion of IDLE state dynamic peer"; |
| } | | } |
| container egress-engineering { | | container egress-engineering { |
| presence "Indicates a egress-engineering node is configured."; | | presence "Indicates a egress-engineering node is configured."; |
| description | | description |
| "Enable egress peer engineering for this neighbor"; | | "Enable egress peer engineering for this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit egress-engineering from the parent"; | | "Do not inherit egress-engineering from the parent"; |
| } | | } |
| } | | } |
| container peer-sets { | | container peer-sets { |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| list peer-set { | | list peer-set { |
| key "peer-set-id"; | | key "peer-set-id"; |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| leaf peer-set-id { | | leaf peer-set-id { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Identity value of peer-set"; | | "Identity value of peer-set"; |
| } | | } |
| } | | } |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| } | | } |
| } | | } |
| } | | } |
| container ao { | | container ao { |
| description | | description |
| "Enable Authentiation Option"; | | "Enable Authentiation Option"; |
| leaf key-chain-name { | | leaf key-chain-name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| } | | } |
| must "not(../inheritance-disable) and (../include-tcp-options/enable or ../include-tcp-options/disable)"; | | must "not(../inheritance-disable) and (../include-tcp-options/enable or ../include-tcp-options/disable)"; |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| container include-tcp-options { | | container include-tcp-options { |
| description | | description |
| "Include/Exclude other TCP options in the header"; | | "Include/Exclude other TCP options in the header"; |
| container enable { | | container enable { |
| must "not(../disable or ../../inheritance-disable)"; | | must "not(../disable or ../../inheritance-disable)"; |
| presence "Indicates a enable node is configured."; | | presence "Indicates a enable node is configured."; |
| description | | description |
| "Include other TCP options in the header"; | | "Include other TCP options in the header"; |
| } | | } |
| container disable { | | container disable { |
| must "not(../enable or ../../inheritance-disable)"; | | must "not(../enable or ../../inheritance-disable)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Exclude other TCP options in the header"; | | "Exclude other TCP options in the header"; |
| } | | } |
| container accept-ao-mismatch-connection { | | container accept-ao-mismatch-connection { |
| must "../enable or ../disable"; | | must "../enable or ../disable"; |
| presence "Indicates a accept-ao-mismatch-connection node is configured."; | | presence "Indicates a accept-ao-mismatch-connection node is configured."; |
| description | | description |
| "Accept new connection even if AO mismatched"; | | "Accept new connection even if AO mismatched"; |
| } | | } |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../key-chain-name)"; | | must "not(../key-chain-name)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent keychain from being inherited from parent"; | | "Prevent keychain from being inherited from parent"; |
| } | | } |
| } | | } |
| leaf maximum-prefix-restart-time { | | leaf maximum-prefix-restart-time { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Maximum prefix restart time (minutes)"; | | "Maximum prefix restart time (minutes)"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart timer interval"; | | "Restart timer interval"; |
| } | | } |
| } | | } |
| } | | } |
| container neighbor-groups { | | container neighbor-groups { |
| description | | description |
| "Specify a Neighbor-group"; | | "Specify a Neighbor-group"; |
| list neighbor-group { | | list neighbor-group { |
| key "neighbor-group-name"; | | key "neighbor-group-name"; |
| description | | description |
| "Specify a Neighbor-group"; | | "Specify a Neighbor-group"; |
| leaf neighbor-group-name { | | leaf neighbor-group-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..900" { | | length "1..900" { |
| description | | description |
| "Neighbor-group name"; | | "Neighbor-group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify a Neighbor-group"; | | "Specify a Neighbor-group"; |
| } | | } |
| container address-families { | | container address-families { |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| list address-family { | | list address-family { |
| key "af-name"; | | key "af-name"; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| leaf af-name { | | leaf af-name { |
| type Bgp-address-family; | | type Bgp-address-family; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Paths from this neighbor is eligible for multipath"; | | "Paths from this neighbor is eligible for multipath"; |
| } | | } |
| container use { | | container use { |
| description | | description |
| "Inherit configuration for this address-family from a group"; | | "Inherit configuration for this address-family from a group"; |
| leaf af-group { | | leaf af-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "AF group name"; | | "AF group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit configuration for this address-family from an af-group"; | | "Inherit configuration for this address-family from an af-group"; |
| } | | } |
| } | | } |
| container capability { | | container capability { |
| description | | description |
| "Advertise capability to the peer"; | | "Advertise capability to the peer"; |
| container orf { | | container orf { |
| description | | description |
| "Advertise ORF capability to the peer"; | | "Advertise ORF capability to the peer"; |
| container prefix { | | container prefix { |
| description | | description |
| "Advertise address prefix ORF capability to this neighbor"; | | "Advertise address prefix ORF capability to this neighbor"; |
| container receive { | | container receive { |
| must "not(../send or ../both or ../none)"; | | must "not(../send or ../both or ../none)"; |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Capability to RECEIVE the ORF from this neighbor"; | | "Capability to RECEIVE the ORF from this neighbor"; |
| } | | } |
| container send { | | container send { |
| must "not(../receive or ../both or ../none)"; | | must "not(../receive or ../both or ../none)"; |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Capability to SEND the ORF to this neighbor"; | | "Capability to SEND the ORF to this neighbor"; |
| } | | } |
| container both { | | container both { |
| must "not(../receive or ../send or ../none)"; | | must "not(../receive or ../send or ../none)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Capability to RECEIVE and SEND the ORF from/to this neighbor"; | | "Capability to RECEIVE and SEND the ORF from/to this neighbor"; |
| } | | } |
| container none { | | container none { |
| must "not(../receive or ../send or ../both)"; | | must "not(../receive or ../send or ../both)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No capability to RECEIVE or SEND the ORF from/to this neighbor"; | | "No capability to RECEIVE or SEND the ORF from/to this neighbor"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container default-originate { | | container default-originate { |
| presence "Indicates a default-originate node is configured."; | | presence "Indicates a default-originate node is configured."; |
| description | | description |
| "Originate default route to this neighbor"; | | "Originate default route to this neighbor"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy to specify criteria to originate default"; | | "Route policy to specify criteria to originate default"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../route-policy)"; | | must "not(../route-policy)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent default-originate being inherited from a parent group"; | | "Prevent default-originate being inherited from a parent group"; |
| } | | } |
| } | | } |
| container maximum-prefix { | | container maximum-prefix { |
| presence "Indicates a maximum-prefix node is configured."; | | presence "Indicates a maximum-prefix node is configured."; |
| description | | description |
| "Maximum number of prefixes to accept from this peer"; | | "Maximum number of prefixes to accept from this peer"; |
| leaf prefix-limit { | | leaf prefix-limit { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "maximum no. of prefix limit"; | | "maximum no. of prefix limit"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Maximum number of prefixes to accept from this peer"; | | "Maximum number of prefixes to accept from this peer"; |
| } | | } |
| leaf threshold { | | leaf threshold { |
| type uint32 { | | type uint32 { |
| range "1..100" { | | range "1..100" { |
| description | | description |
| "Threshold value (%) at which to generate a warning msg"; | | "Threshold value (%) at which to generate a warning msg"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Threshold value (%) at which to generate a warning msg"; | | "Threshold value (%) at which to generate a warning msg"; |
| } | | } |
| container warning-only { | | container warning-only { |
| presence "Indicates a warning-only node is configured."; | | presence "Indicates a warning-only node is configured."; |
| description | | description |
| "Only give warning message when limit is exceeded"; | | "Only give warning message when limit is exceeded"; |
| } | | } |
| leaf restart { | | leaf restart { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Time interval (min) after which peering session will be reestablished"; | | "Time interval (min) after which peering session will be reestablished"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart time interval"; | | "Restart time interval"; |
| } | | } |
| container discard-extra-paths { | | container discard-extra-paths { |
| presence "Indicates a discard-extra-paths node is configured."; | | presence "Indicates a discard-extra-paths node is configured."; |
| description | | description |
| "Discard extra paths when limit is exceeded"; | | "Discard extra paths when limit is exceeded"; |
| } | | } |
| } | | } |
| leaf optimal-route-reflection { | | leaf optimal-route-reflection { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure optiomal-route-reflection for this neighbor"; | | "Configure optiomal-route-reflection for this neighbor"; |
| } | | } |
| container next-hop-self { | | container next-hop-self { |
| presence "Indicates a next-hop-self node is configured."; | | presence "Indicates a next-hop-self node is configured."; |
| description | | description |
| "Disable the next hop calculation for this neighbor"; | | "Disable the next hop calculation for this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent next-hop-self from being inherited from the parent"; | | "Prevent next-hop-self from being inherited from the parent"; |
| } | | } |
| } | | } |
| container next-hop-unchanged { | | container next-hop-unchanged { |
| presence "Indicates a next-hop-unchanged node is configured."; | | presence "Indicates a next-hop-unchanged node is configured."; |
| description | | description |
| "Do not overwrite next hop before advertising to eBGP peers"; | | "Do not overwrite next hop before advertising to eBGP peers"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent next-hop-unchanged from being inherited from the parent"; | | "Prevent next-hop-unchanged from being inherited from the parent"; |
| } | | } |
| } | | } |
| container next-hop-unchanged-multipath { | | container next-hop-unchanged-multipath { |
| presence "Indicates a next-hop-unchanged-multipath node is configured."; | | presence "Indicates a next-hop-unchanged-multipath node is configured."; |
| description | | description |
| "Do not overwrite nexthop before advertising multipaths"; | | "Do not overwrite nexthop before advertising multipaths"; |
| } | | } |
| container slow-peer { | | container slow-peer { |
| description | | description |
| "Configure this neighbor as slow-peer"; | | "Configure this neighbor as slow-peer"; |
| container static { | | container static { |
| must "not(../dynamic)"; | | must "not(../dynamic)"; |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Configure this neighbor as static slow-peer"; | | "Configure this neighbor as static slow-peer"; |
| } | | } |
| container dynamic { | | container dynamic { |
| must "not(../static)"; | | must "not(../static)"; |
| presence "Indicates a dynamic node is configured."; | | presence "Indicates a dynamic node is configured."; |
| description | | description |
| "Configure this neighbor as dynamic slow-peer"; | | "Configure this neighbor as dynamic slow-peer"; |
| leaf threshold { | | leaf threshold { |
| type uint16 { | | type uint16 { |
| range "120..3600" { | | range "120..3600" { |
| description | | description |
| "Threshold (in seconds) to detect this neighbor as slow-peer"; | | "Threshold (in seconds) to detect this neighbor as slow-peer"; |
| } | | } |
| } | | } |
| description | | description |
| "Threshold (in seconds) to detect this neighbor as slow-peer"; | | "Threshold (in seconds) to detect this neighbor as slow-peer"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable dynamic slow-peer"; | | "Disable dynamic slow-peer"; |
| } | | } |
| } | | } |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validation { | | container validation { |
| description | | description |
| "BGP origin-AS validation knobs"; | | "BGP origin-AS validation knobs"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable RPKI origin-AS validation"; | | "Disable RPKI origin-AS validation"; |
| } | | } |
| } | | } |
| } | | } |
| container bestpath { | | container bestpath { |
| description | | description |
| "Change default route selection criteria"; | | "Change default route selection criteria"; |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container allow { | | container allow { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container invalid { | | container invalid { |
| presence "Indicates a invalid node is configured."; | | presence "Indicates a invalid node is configured."; |
| description | | description |
| "BGP bestpath selection will allow 'invalid' origin-AS"; | | "BGP bestpath selection will allow 'invalid' origin-AS"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy to neighbor"; | | "Apply route policy to neighbor"; |
| leaf in { | | leaf in { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Apply route policy to inbound routes"; | | "Apply route policy to inbound routes"; |
| } | | } |
| leaf out { | | leaf out { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Apply route policy to outbound routes"; | | "Apply route policy to outbound routes"; |
| } | | } |
| container retention { | | container retention { |
| description | | description |
| "Apply retention policy to inbound routes"; | | "Apply retention policy to inbound routes"; |
| leaf route-policy-name { | | leaf route-policy-name { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| must "../retention-time"; | | must "../retention-time"; |
| description | | description |
| "Apply retention policy to inbound routes"; | | "Apply retention policy to inbound routes"; |
| } | | } |
| leaf retention-time { | | leaf retention-time { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| must "../route-policy-name"; | | must "../route-policy-name"; |
| description | | description |
| "Retention-time for this neighbor"; | | "Retention-time for this neighbor"; |
| } | | } |
| } | | } |
| } | | } |
| container orf { | | container orf { |
| description | | description |
| "Specify ORF and inbound filtering criteria"; | | "Specify ORF and inbound filtering criteria"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy to specify ORF and inbound filter"; | | "Route policy to specify ORF and inbound filter"; |
| } | | } |
| } | | } |
| container replace-private-as { | | container replace-private-as { |
| presence "Indicates a replace-private-as node is configured."; | | presence "Indicates a replace-private-as node is configured."; |
| description | | description |
| "Replace private AS number from outbound updates"; | | "Replace private AS number from outbound updates"; |
| container internal { | | container internal { |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| } | | } |
| container remove-private-as { | | container remove-private-as { |
| presence "Indicates a remove-private-as node is configured."; | | presence "Indicates a remove-private-as node is configured."; |
| description | | description |
| "Remove private AS number from outbound updates"; | | "Remove private AS number from outbound updates"; |
| container entire-aspath { | | container entire-aspath { |
| must "not(../inheritance-disable or ../internal)"; | | must "not(../inheritance-disable or ../internal)"; |
| presence "Indicates a entire-aspath node is configured."; | | presence "Indicates a entire-aspath node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../entire-aspath or ../internal)"; | | must "not(../entire-aspath or ../internal)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| container internal { | | container internal { |
| must "not(../entire-aspath or ../inheritance-disable)"; | | must "not(../entire-aspath or ../inheritance-disable)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container remove-private-as-inbound { | | container remove-private-as-inbound { |
| must "not(entire-aspath and inheritance-disable)"; | | must "not(entire-aspath and inheritance-disable)"; |
| presence "Indicates a inbound node is configured."; | | presence "Indicates a inbound node is configured."; |
| description | | description |
| "Remove private AS number from inbound updates"; | | "Remove private AS number from inbound updates"; |
| container entire-aspath { | | container entire-aspath { |
| presence "Indicates a entire-aspath node is configured."; | | presence "Indicates a entire-aspath node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| } | | } |
| container enforce-multiple-labels { | | container enforce-multiple-labels { |
| presence "Indicates a enforce-multiple-labels node is configured."; | | presence "Indicates a enforce-multiple-labels node is configured."; |
| description | | description |
| "Enforce support for multiple labels (requires manual session flap)"; | | "Enforce support for multiple labels (requires manual session flap)"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent enforce-multiple-labels from being inherited from the parent"; | | "Prevent enforce-multiple-labels from being inherited from the parent"; |
| } | | } |
| } | | } |
| container route-reflector-client { | | container route-reflector-client { |
| presence "Indicates a route-reflector-client node is configured."; | | presence "Indicates a route-reflector-client node is configured."; |
| description | | description |
| "Configure a neighbor as Route Reflector client"; | | "Configure a neighbor as Route Reflector client"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent route-reflector-client from being inherited from the parent"; | | "Prevent route-reflector-client from being inherited from the parent"; |
| } | | } |
| } | | } |
| container accept-route-legacy-rt { | | container accept-route-legacy-rt { |
| presence "Indicates a accept-route-legacy-rt node is configured."; | | presence "Indicates a accept-route-legacy-rt node is configured."; |
| description | | description |
| "Configure a neighbor to support legacy PE for RT-Constraint AF"; | | "Configure a neighbor to support legacy PE for RT-Constraint AF"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent accept-route-legacy-RT from being inherited from the parent"; | | "Prevent accept-route-legacy-RT from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-community-ebgp { | | container send-community-ebgp { |
| presence "Indicates a send-community-ebgp node is configured."; | | presence "Indicates a send-community-ebgp node is configured."; |
| description | | description |
| "Send community attribute to this external neighbor"; | | "Send community attribute to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-community-ebgp from being inherited from the parent"; | | "Prevent send-community-ebgp from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-community-gshut-ebgp { | | container send-community-gshut-ebgp { |
| presence "Indicates a send-community-gshut-ebgp node is configured."; | | presence "Indicates a send-community-gshut-ebgp node is configured."; |
| description | | description |
| "Allow the g-shut community to be sent to this external neighbor"; | | "Allow the g-shut community to be sent to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-community-gshut-ebgp from being inherited from the parent"; | | "Prevent send-community-gshut-ebgp from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-extended-community-ebgp { | | container send-extended-community-ebgp { |
| presence "Indicates a send-extended-community-ebgp node is configured."; | | presence "Indicates a send-extended-community-ebgp node is configured."; |
| description | | description |
| "Send extended community attribute to this external neighbor"; | | "Send extended community attribute to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-extended-community-ebgp from being inherited from parent"; | | "Prevent send-extended-community-ebgp from being inherited from parent"; |
| } | | } |
| } | | } |
| container soft-reconfiguration { | | container soft-reconfiguration { |
| description | | description |
| "Per neighbor soft reconfiguration"; | | "Per neighbor soft reconfiguration"; |
| container inbound { | | container inbound { |
| presence "Indicates a inbound node is configured."; | | presence "Indicates a inbound node is configured."; |
| description | | description |
| "Allow inbound soft reconfiguration for this neighbor"; | | "Allow inbound soft reconfiguration for this neighbor"; |
| container rpki-dropped-only { | | container rpki-dropped-only { |
| must "not(../rpki-tested-only or ../always or ../inheritance-disable)"; | | must "not(../rpki-tested-only or ../always or ../inheritance-disable)"; |
| presence "Indicates a rpki-dropped-only node is configured."; | | presence "Indicates a rpki-dropped-only node is configured."; |
| description | | description |
| "Use soft-reconfig, for paths dropped by route-policy which have RPKI validity state check"; | | "Use soft-reconfig, for paths dropped by route-policy which have RPKI validity state check"; |
| } | | } |
| container rpki-tested-only { | | container rpki-tested-only { |
| must "not(../rpki-dropped-only or ../always or ../inheritance-disable)"; | | must "not(../rpki-dropped-only or ../always or ../inheritance-disable)"; |
| presence "Indicates a rpki-tested-only node is configured."; | | presence "Indicates a rpki-tested-only node is configured."; |
| description | | description |
| "Use soft-reconfig for paths tested or dropped by route-policy which have RPKI validity state check"; | | "Use soft-reconfig for paths tested or dropped by route-policy which have RPKI validity state check"; |
| } | | } |
| container always { | | container always { |
| must "not(../rpki-dropped-only or ../rpki-tested-only or ../inheritance-disable)"; | | must "not(../rpki-dropped-only or ../rpki-tested-only or ../inheritance-disable)"; |
| presence "Indicates a always node is configured."; | | presence "Indicates a always node is configured."; |
| description | | description |
| "Always use soft reconfig, even if route refresh is supported"; | | "Always use soft reconfig, even if route refresh is supported"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../rpki-dropped-only or ../rpki-tested-only or ../always)"; | | must "not(../rpki-dropped-only or ../rpki-tested-only or ../always)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent soft-reconfiguration from being inherited from the parent"; | | "Prevent soft-reconfiguration from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container update { | | container update { |
| description | | description |
| "BGP out bound message"; | | "BGP out bound message"; |
| container out { | | container out { |
| description | | description |
| "BGP out bound message handling"; | | "BGP out bound message handling"; |
| container originator-loopcheck { | | container originator-loopcheck { |
| presence "Indicates a originator-loopcheck node is configured."; | | presence "Indicates a originator-loopcheck node is configured."; |
| description | | description |
| "Loop check for same originator which sent the route"; | | "Loop check for same originator which sent the route"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable originator loop check"; | | "Disable originator loop check"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container advertise { | | container advertise { |
| description | | description |
| "Per neighbor advertisement options"; | | "Per neighbor advertisement options"; |
| container permanent-network { | | container permanent-network { |
| when | | when |
| "../../af-name != 'vpnv4-unicast' and | | "../../af-name != 'vpnv4-unicast' and |
| ../../af-name != 'vpnv4-multicast' and | | ../../af-name != 'vpnv4-multicast' and |
| ../../af-name != 'vpnv4-flowspec' and | | ../../af-name != 'vpnv4-flowspec' and |
| ../../af-name != 'vpnv6-flowspec' and | | ../../af-name != 'vpnv6-flowspec' and |
| ../../af-name != 'vpnv6-multicast' and | | ../../af-name != 'vpnv6-multicast' and |
| ../../af-name != 'vpnv6-unicast' and | | ../../af-name != 'vpnv6-unicast' and |
| ../../af-name != 'l2vpn-evpn' and | | ../../af-name != 'l2vpn-evpn' and |
| ../../af-name != 'l2vpn-mspw' and | | ../../af-name != 'l2vpn-mspw' and |
| ../../af-name != 'l2vpn-vpls-vpws'"; | | ../../af-name != 'l2vpn-vpls-vpws'"; |
| presence "Indicates a permanent-network node is configured."; | | presence "Indicates a permanent-network node is configured."; |
| description | | description |
| "Allow permanent networks for this neighbor"; | | "Allow permanent networks for this neighbor"; |
| } | | } |
| container local-labeled-route { | | container local-labeled-route { |
| when | | when |
| "../../af-name != 'vpnv4-unicast' and | | "../../af-name != 'vpnv4-unicast' and |
| ../../af-name != 'vpnv4-multicast' and | | ../../af-name != 'vpnv4-multicast' and |
| ../../af-name != 'vpnv4-flowspec' and | | ../../af-name != 'vpnv4-flowspec' and |
| ../../af-name != 'vpnv6-flowspec' and | | ../../af-name != 'vpnv6-flowspec' and |
| ../../af-name != 'vpnv6-multicast' and | | ../../af-name != 'vpnv6-multicast' and |
| ../../af-name != 'vpnv6-unicast' and | | ../../af-name != 'vpnv6-unicast' and |
| ../../af-name != 'l2vpn-evpn' and | | ../../af-name != 'l2vpn-evpn' and |
| ../../af-name != 'l2vpn-mspw' and | | ../../af-name != 'l2vpn-mspw' and |
| ../../af-name != 'l2vpn-vpls-vpws'"; | | ../../af-name != 'l2vpn-vpls-vpws'"; |
| presence "Indicates a local-labeled-route node is configured."; | | presence "Indicates a local-labeled-route node is configured."; |
| description | | description |
| "Advertisement of routes with local-label"; | | "Advertisement of routes with local-label"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise routes with local-label via Unicast SAFI"; | | "Do not advertise routes with local-label via Unicast SAFI"; |
| } | | } |
| } | | } |
| container vpnv4 { | | container vpnv4 { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "VPNv4 Address Family"; | | "VPNv4 Address Family"; |
| container unicast { | | container unicast { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container enable { | | container enable { |
| presence "Indicates an enable node is configured."; | | presence "Indicates an enable node is configured."; |
| description | | description |
| "Enable advertise vpn4 unicast"; | | "Enable advertise vpn4 unicast"; |
| container re-originated { | | container re-originated { |
| presence "Indicates a re-originated node is configured."; | | presence "Indicates a re-originated node is configured."; |
| description | | description |
| "Advertise re-orignated and local routes only"; | | "Advertise re-orignated and local routes only"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Advertise re-originated and local routes with stitching Route-Targets"; | | "Advertise re-originated and local routes with stitching Route-Targets"; |
| } | | } |
| } | | } |
| } | | } |
| container imported-from-default-vrf { | | container imported-from-default-vrf { |
| description | | description |
| "Default VRF imported routes"; | | "Default VRF imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of default VRF imported routes"; | | "Disable advertisement of default VRF imported routes"; |
| } | | } |
| } | | } |
| container imported-from-vrf { | | container imported-from-vrf { |
| description | | description |
| "VRF extranet imported routes"; | | "VRF extranet imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF extranet imported routes"; | | "Disable advertisement of VRF extranet imported routes"; |
| } | | } |
| } | | } |
| container imported-from-bridgedomain { | | container imported-from-bridgedomain { |
| description | | description |
| "VRF EVPN extranet imported routes "; | | "VRF EVPN extranet imported routes "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF EVPN extranet imported routes"; | | "Disable advertisement of VRF EVPN extranet imported routes"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container vpnv6 { | | container vpnv6 { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "VPNv6 Address Family"; | | "VPNv6 Address Family"; |
| container unicast { | | container unicast { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container enable { | | container enable { |
| presence "Indicates an enable node is configured."; | | presence "Indicates an enable node is configured."; |
| description | | description |
| "Enable advertise vpnv6 unicast"; | | "Enable advertise vpnv6 unicast"; |
| container re-originated { | | container re-originated { |
| presence "Indicates a re-originated node is configured."; | | presence "Indicates a re-originated node is configured."; |
| description | | description |
| "Advertise Re-orignated routes only"; | | "Advertise Re-orignated routes only"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Advertise re-originated routes with stitching Route-Targets"; | | "Advertise re-originated routes with stitching Route-Targets"; |
| } | | } |
| } | | } |
| } | | } |
| container imported-from-default-vrf { | | container imported-from-default-vrf { |
| description | | description |
| "Default VRF imported routes"; | | "Default VRF imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of default VRF imported routes"; | | "Disable advertisement of default VRF imported routes"; |
| } | | } |
| } | | } |
| container imported-from-vrf { | | container imported-from-vrf { |
| description | | description |
| "VRF extranet imported routes"; | | "VRF extranet imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF extranet imported routes"; | | "Disable advertisement of VRF extranet imported routes"; |
| } | | } |
| } | | } |
| container imported-from-bridgedomain { | | container imported-from-bridgedomain { |
| description | | description |
| "VRF EVPN extranet imported routes"; | | "VRF EVPN extranet imported routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertisement of VRF EVPN extranet imported routes"; | | "Disable advertisement of VRF EVPN extranet imported routes"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container l2vpn { | | container l2vpn { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "L2VPN Address Family"; | | "L2VPN Address Family"; |
| container evpn { | | container evpn { |
| when "../../../af-name = 'l2vpn-evpn'"; | | when "../../../af-name = 'l2vpn-evpn'"; |
| presence "Indicates a evpn node is configured."; | | presence "Indicates a evpn node is configured."; |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container re-originated { | | container re-originated { |
| presence "Indicates a re-originated node is configured."; | | presence "Indicates a re-originated node is configured."; |
| description | | description |
| "Advertise Re-orignated routes only"; | | "Advertise Re-orignated routes only"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Advertise re-originated routes with stitching Route-Targets"; | | "Advertise re-originated routes with stitching Route-Targets"; |
| } | | } |
| } | | } |
| } | | } |
| container evpn-disable { | | container evpn-disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Advertisement of selected SAFI"; | | "Disable Advertisement of selected SAFI"; |
| } | | } |
| container vpls-vpws { | | container vpls-vpws { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Advertisement of selected SAFI"; | | "Disable Advertisement of selected SAFI"; |
| } | | } |
| } | | } |
| container mspw { | | container mspw { |
| description | | description |
| "Address Family modifier"; | | "Address Family modifier"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Advertisement of selected SAFI"; | | "Disable Advertisement of selected SAFI"; |
| } | | } |
| } | | } |
| container gateway-ip-disable { | | container gateway-ip-disable { |
| when "../../../af-name = 'l2vpn-evpn'"; | | when "../../../af-name = 'l2vpn-evpn'"; |
| presence "Indicates a gateway-ip-disable node is configured."; | | presence "Indicates a gateway-ip-disable node is configured."; |
| description | | description |
| "Disable advertisement of non-zero EVPN Gateway-IP"; | | "Disable advertisement of non-zero EVPN Gateway-IP"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent EVPN Gateway-IP disable being inherited from a parent group"; | | "Prevent EVPN Gateway-IP disable being inherited from a parent group"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container encapsulation-type { | | container encapsulation-type { |
| when | | when |
| "../af-name = 'ipv4-unicast' or | | "../af-name = 'ipv4-unicast' or |
| ../af-name = 'ipv6-unicast' or | | ../af-name = 'ipv6-unicast' or |
| ../af-name = 'vpnv4-unicast' or | | ../af-name = 'vpnv4-unicast' or |
| ../af-name = 'vpnv6-unicast' or | | ../af-name = 'vpnv6-unicast' or |
| ../af-name = 'l2vpn-evpn'"; | | ../af-name = 'l2vpn-evpn'"; |
| description | | description |
| "Specify encapsulation type"; | | "Specify encapsulation type"; |
| container vxlan { | | container vxlan { |
| when | | when |
| "../../af-name = 'vpnv4-unicast' or | | "../../af-name = 'vpnv4-unicast' or |
| ../../af-name = 'vpnv6-unicast' or | | ../../af-name = 'vpnv6-unicast' or |
| ../../af-name = 'l2vpn-evpn'"; | | ../../af-name = 'l2vpn-evpn'"; |
| must "not(../srv6)"; | | must "not(../srv6)"; |
| presence "Indicates a vxlan node is configured."; | | presence "Indicates a vxlan node is configured."; |
| description | | description |
| "VxLAN encapsulation"; | | "VxLAN encapsulation"; |
| } | | } |
| container srv6 { | | container srv6 { |
| when "../../af-name != 'l2vpn-evpn'"; | | when "../../af-name != 'l2vpn-evpn'"; |
| must "not(../vxlan)"; | | must "not(../vxlan)"; |
| presence "Indicates a srv6 node is configured."; | | presence "Indicates a srv6 node is configured."; |
| description | | description |
| "SRv6 encapsulation"; | | "SRv6 encapsulation"; |
| } | | } |
| } | | } |
| container segment-routing { | | container segment-routing { |
| when "../af-name = 'vpnv4-unicast'"; | | when "../af-name = 'vpnv4-unicast'"; |
| description | | description |
| "enable segment-routing srv6 version 4"; | | "enable segment-routing srv6 version 4"; |
| container srv6 { | | container srv6 { |
| description | | description |
| "srv6 version 4"; | | "srv6 version 4"; |
| container prefix-sid-type4 { | | container prefix-sid-type4 { |
| presence "Indicates a prefix-sid-type4 node is configured."; | | presence "Indicates a prefix-sid-type4 node is configured."; |
| description | | description |
| "Enable prefix sid version 4 encoding"; | | "Enable prefix sid version 4 encoding"; |
| } | | } |
| } | | } |
| } | | } |
| container import { | | container import { |
| description | | description |
| "Import options for neighbor address-family routes"; | | "Import options for neighbor address-family routes"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Import routes using stitching RTs"; | | "Import routes using stitching RTs"; |
| container re-originate { | | container re-originate { |
| presence "Indicates a re-originate node is configured."; | | presence "Indicates a re-originate node is configured."; |
| description | | description |
| "Re-originate imported routes"; | | "Re-originate imported routes"; |
| container stitching-rt { | | container stitching-rt { |
| presence "Indicates a stitching-rt node is configured."; | | presence "Indicates a stitching-rt node is configured."; |
| description | | description |
| "Reoriginate imported routes by attaching stitching RTs"; | | "Reoriginate imported routes by attaching stitching RTs"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf weight { | | leaf weight { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "default weight"; | | "default weight"; |
| } | | } |
| } | | } |
| description | | description |
| "Set default weight for routes from this neighbor"; | | "Set default weight for routes from this neighbor"; |
| } | | } |
| container allowas-in { | | container allowas-in { |
| presence "Indicates a allowas-in node is configured."; | | presence "Indicates a allowas-in node is configured."; |
| description | | description |
| "Allow as-path with my AS present in it"; | | "Allow as-path with my AS present in it"; |
| leaf number-of-occurences { | | leaf number-of-occurences { |
| type uint32 { | | type uint32 { |
| range "1..10" { | | range "1..10" { |
| description | | description |
| "Number of occurences of AS number"; | | "Number of occurences of AS number"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of occurences of AS number"; | | "Number of occurences of AS number"; |
| } | | } |
| } | | } |
| container allowconfedas-in { | | container allowconfedas-in { |
| presence "Indicates a allowconfedas-in node is configured."; | | presence "Indicates a allowconfedas-in node is configured."; |
| description | | description |
| "Allow as-path with my confederation AS present in it"; | | "Allow as-path with my confederation AS present in it"; |
| leaf number-of-occurences { | | leaf number-of-occurences { |
| type uint32 { | | type uint32 { |
| range "1..10" { | | range "1..10" { |
| description | | description |
| "Number of occurences of confederation AS number"; | | "Number of occurences of confederation AS number"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of occurences of confederation AS number"; | | "Number of occurences of confederation AS number"; |
| } | | } |
| } | | } |
| container long-lived-graceful-restart { | | container long-lived-graceful-restart { |
| description | | description |
| "Enable long lived graceful restart support"; | | "Enable long lived graceful restart support"; |
| container stale-time { | | container stale-time { |
| description | | description |
| "Maximum time to wait before purging long-lived stale routes"; | | "Maximum time to wait before purging long-lived stale routes"; |
| leaf send { | | leaf send { |
| type uint32 { | | type uint32 { |
| range "0..16777215" { | | range "0..16777215" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Stale-time sent in LLGR Capability"; | | "Stale-time sent in LLGR Capability"; |
| } | | } |
| leaf accept { | | leaf accept { |
| type uint32 { | | type uint32 { |
| range "0..16777215" { | | range "0..16777215" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum stale-time acceptable from neighbor"; | | "Maximum stale-time acceptable from neighbor"; |
| } | | } |
| } | | } |
| container capable { | | container capable { |
| presence "Indicates a capable node is configured."; | | presence "Indicates a capable node is configured."; |
| description | | description |
| "Treat neighbor as LLGR capable"; | | "Treat neighbor as LLGR capable"; |
| } | | } |
| } | | } |
| container as-override { | | container as-override { |
| presence "Indicates a as-override node is configured."; | | presence "Indicates a as-override node is configured."; |
| description | | description |
| "Override matching AS-number while sending update"; | | "Override matching AS-number while sending update"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent as-override from being inherited from the parent"; | | "Prevent as-override from being inherited from the parent"; |
| } | | } |
| } | | } |
| container aigp { | | container aigp { |
| presence "Indicates a aigp node is configured."; | | presence "Indicates a aigp node is configured."; |
| description | | description |
| "Enable AIGP for this neighbor "; | | "Enable AIGP for this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable AIGP"; | | "Disable AIGP"; |
| } | | } |
| } | | } |
| container aigp-send { | | container aigp-send { |
| description | | description |
| "Copy AIGP"; | | "Copy AIGP"; |
| container cost-community { | | container cost-community { |
| must "(cost-community-id and poi) or disable"; | | must "(cost-community-id and poi) or disable"; |
| presence "Indicates a cost-community node is configured."; | | presence "Indicates a cost-community node is configured."; |
| description | | description |
| "Send AIGP value in Cost Community"; | | "Send AIGP value in Cost Community"; |
| leaf cost-community-id { | | leaf cost-community-id { |
| type uint32 { | | type uint32 { |
| range "0..255" { | | range "0..255" { |
| description | | description |
| "Cost community ID"; | | "Cost community ID"; |
| } | | } |
| } | | } |
| must "not(../disable)"; | | must "not(../disable)"; |
| description | | description |
| "Cost community ID"; | | "Cost community ID"; |
| } | | } |
| container poi { | | container poi { |
| must "(igp-cost or pre-bestpath) and not(igp-cost and pre-bestpath)"; | | must "(igp-cost or pre-bestpath) and not(igp-cost and pre-bestpath)"; |
| presence "Indicates a poi node is configured."; | | presence "Indicates a poi node is configured."; |
| description | | description |
| "Point of insertion for bestpath calculation"; | | "Point of insertion for bestpath calculation"; |
| container igp-cost { | | container igp-cost { |
| presence "Indicates a igp-cost node is configured."; | | presence "Indicates a igp-cost node is configured."; |
| description | | description |
| "Cost community is used after IGP distance to next hop"; | | "Cost community is used after IGP distance to next hop"; |
| container transitive { | | container transitive { |
| presence "Indicates a transitive node is configured."; | | presence "Indicates a transitive node is configured."; |
| description | | description |
| "Enable transitive cost community"; | | "Enable transitive cost community"; |
| } | | } |
| } | | } |
| container pre-bestpath { | | container pre-bestpath { |
| presence "Indicates a pre-bestpath node is configured."; | | presence "Indicates a pre-bestpath node is configured."; |
| description | | description |
| "Cost community is first step in best path calculation"; | | "Cost community is first step in best path calculation"; |
| container transitive { | | container transitive { |
| presence "Indicates a transitive node is configured."; | | presence "Indicates a transitive node is configured."; |
| description | | description |
| "Enable transitive cost community"; | | "Enable transitive cost community"; |
| } | | } |
| } | | } |
| } | | } |
| container disable { | | container disable { |
| must "not(../cost-community-id)"; | | must "not(../cost-community-id)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable aigp send cost-community"; | | "Disable aigp send cost-community"; |
| } | | } |
| } | | } |
| container med { | | container med { |
| presence "Indicates a med node is configured."; | | presence "Indicates a med node is configured."; |
| description | | description |
| "Send AIGP value in MED"; | | "Send AIGP value in MED"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable aigp send med"; | | "Disable aigp send med"; |
| } | | } |
| } | | } |
| } | | } |
| container validation { | | container validation { |
| when "../af-name = 'ipv4-flowspec' or ../af-name = 'ipv6-flowspec'"; | | when "../af-name = 'ipv4-flowspec' or ../af-name = 'ipv6-flowspec'"; |
| presence "Indicates a validation node is configured."; | | presence "Indicates a validation node is configured."; |
| description | | description |
| "Flowspec Validation for this neighbor "; | | "Flowspec Validation for this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Flowspec Validation"; | | "Disable Flowspec Validation"; |
| } | | } |
| container redirect { | | container redirect { |
| description | | description |
| "Flowspec Redirect nexthop Validation"; | | "Flowspec Redirect nexthop Validation"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Flowspec Redirect nexthop Validation"; | | "Disable Flowspec Redirect nexthop Validation"; |
| } | | } |
| } | | } |
| } | | } |
| container send-multicast-attributes { | | container send-multicast-attributes { |
| when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv4-labeled-unicast' or ../af-name = 'ipv6-labeled-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-multicast' or ../af-name = 'ipv4-mvpn' or ../af-name = 'ipv6-mvpn'"; | | when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv4-labeled-unicast' or ../af-name = 'ipv6-labeled-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-multicast' or ../af-name = 'ipv4-mvpn' or ../af-name = 'ipv6-mvpn'"; |
| presence "Indicates a send-multicast-attributes node is configured."; | | presence "Indicates a send-multicast-attributes node is configured."; |
| description | | description |
| "Send multicast attributes to this neighbor "; | | "Send multicast attributes to this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable send multicast attribute"; | | "Disable send multicast attribute"; |
| } | | } |
| } | | } |
| container signalling { | | container signalling { |
| description | | description |
| "Signalling protocols to disable, BGP or LDP"; | | "Signalling protocols to disable, BGP or LDP"; |
| container bgp { | | container bgp { |
| description | | description |
| "Select BGP to disable"; | | "Select BGP to disable"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Signalling type"; | | "Disable Signalling type"; |
| } | | } |
| } | | } |
| container ldp { | | container ldp { |
| description | | description |
| "Select LDP to disable"; | | "Select LDP to disable"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Signalling type"; | | "Disable Signalling type"; |
| } | | } |
| } | | } |
| } | | } |
| container accept-own { | | container accept-own { |
| presence "Indicates a accept-own node is configured."; | | presence "Indicates a accept-own node is configured."; |
| description | | description |
| "Handle self-originated routes with Accept-Own community"; | | "Handle self-originated routes with Accept-Own community"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent item being inherited from a parent group"; | | "Prevent item being inherited from a parent group"; |
| } | | } |
| } | | } |
| container cluster-id { | | container cluster-id { |
| description | | description |
| "Allow routes with first cluster-id in list is same as the router's cluster id"; | | "Allow routes with first cluster-id in list is same as the router's cluster id"; |
| container allow-equal { | | container allow-equal { |
| presence "Indicates a allow-equal node is configured."; | | presence "Indicates a allow-equal node is configured."; |
| description | | description |
| "Accept routes with first cluster-id in list is same as the router's cluster id"; | | "Accept routes with first cluster-id in list is same as the router's cluster id"; |
| container disable { | | container disable { |
| presence "Indicates a allow-equal node is configured."; | | presence "Indicates a allow-equal node is configured."; |
| description | | description |
| "Prevent the configuration from being inherited."; | | "Prevent the configuration from being inherited."; |
| } | | } |
| } | | } |
| } | | } |
| container site-of-origin { | | container site-of-origin { |
| description | | description |
| "Site-of-Origin extended community associated with the neighbor"; | | "Site-of-Origin extended community associated with the neighbor"; |
| container two-byte-as { | | container two-byte-as { |
| must "not(../four-byte-as or ../ip-address)"; | | must "not(../four-byte-as or ../ip-address)"; |
| presence "Indicates a two-byte-as node is configured."; | | presence "Indicates a two-byte-as node is configured."; |
| description | | description |
| "two-byte-as Site-of-Origin"; | | "two-byte-as Site-of-Origin"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| mandatory true; | | mandatory true; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| container four-byte-as { | | container four-byte-as { |
| must "not(../two-byte-as or ../ip-address)"; | | must "not(../two-byte-as or ../ip-address)"; |
| presence "Indicates a four-byte-as node is configured."; | | presence "Indicates a four-byte-as node is configured."; |
| description | | description |
| "four-byte-as Site-of-Origin"; | | "four-byte-as Site-of-Origin"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| mandatory true; | | mandatory true; |
| description | | description |
| "4-byte AS number"; | | "4-byte AS number"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| container ip-address { | | container ip-address { |
| must "not(../two-byte-as or ../four-byte-as)"; | | must "not(../two-byte-as or ../four-byte-as)"; |
| presence "Indicates a ip-address node is configured."; | | presence "Indicates a ip-address node is configured."; |
| description | | description |
| "configure this node"; | | "configure this node"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| mandatory true; | | mandatory true; |
| description | | description |
| "configure this node"; | | "configure this node"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IPv4Address:index (hex or decimal format)"; | | "IPv4Address:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "IPv4Address:index (hex or decimal format)"; | | "IPv4Address:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container additional-paths { | | container additional-paths { |
| description | | description |
| "Additional paths capability"; | | "Additional paths capability"; |
| container receive { | | container receive { |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Additional paths Receive capability"; | | "Additional paths Receive capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Prevent additional-paths receive from being inherited from the parent"; | | "Prevent additional-paths receive from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send { | | container send { |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Additional paths Send capability"; | | "Additional paths Send capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Prevent additional-paths receive from being inherited from the parent"; | | "Prevent additional-paths receive from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container graceful-maintenance { | | container graceful-maintenance { |
| presence "Indicates a graceful-maintenance node is configured."; | | presence "Indicates a graceful-maintenance node is configured."; |
| description | | description |
| "BGP Graceful Maintenance mode configuration."; | | "BGP Graceful Maintenance mode configuration."; |
| container local-preference { | | container local-preference { |
| must "local-preference-value or inheritance-disable"; | | must "local-preference-value or inheritance-disable"; |
| presence "Indicates a local-preference node is configured."; | | presence "Indicates a local-preference node is configured."; |
| description | | description |
| "local preference with which to advertise routes to ibgps. Default=No Touch"; | | "local preference with which to advertise routes to ibgps. Default=No Touch"; |
| leaf local-preference-value { | | leaf local-preference-value { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Range of values for Local Preference"; | | "Range of values for Local Preference"; |
| } | | } |
| } | | } |
| description | | description |
| "Range of values for Local Preference"; | | "Range of values for Local Preference"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local preference from being inherited from the parent"; | | "Prevent local preference from being inherited from the parent"; |
| } | | } |
| } | | } |
| container as-prepends { | | container as-prepends { |
| must "number-of-as-prepends or inheritance-disable"; | | must "number-of-as-prepends or inheritance-disable"; |
| presence "Indicates a as-prepends node is configured."; | | presence "Indicates a as-prepends node is configured."; |
| description | | description |
| "Number of times to prepend the local AS number to the AS poutes. Default=0"; | | "Number of times to prepend the local AS number to the AS poutes. Default=0"; |
| leaf number-of-as-prepends { | | leaf number-of-as-prepends { |
| type uint32 { | | type uint32 { |
| range "0..6" { | | range "0..6" { |
| description | | description |
| "Range of number of AS prepends"; | | "Range of number of AS prepends"; |
| } | | } |
| } | | } |
| description | | description |
| "Range of number of AS prepends"; | | "Range of number of AS prepends"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent AS prepends from being inherited from the parent"; | | "Prevent AS prepends from being inherited from the parent"; |
| } | | } |
| } | | } |
| container activate { | | container activate { |
| presence "Indicates a activate node is configured."; | | presence "Indicates a activate node is configured."; |
| description | | description |
| "Routes will be announced with the graceful maintenance | | "Routes will be announced with the graceful maintenance |
| attrhile activated either here or under router | | attrhile activated either here or under router |
| bgp ation. While activated, all routes to this | | bgp ation. While activated, all routes to this |
| neigl be announced with the attributes | | neigl be announced with the attributes |
| confere and all routes from this neighbor will | | confere and all routes from this neighbor will |
| be a to other neighbors with the graceful | | be a to other neighbors with the graceful |
| mainattributes configured under those | | mainattributes configured under those |
| neighe g-shut community will be announced | | neighe g-shut community will be announced |
| regaf the other attributes configured here. To | | regaf the other attributes configured here. To |
| alloshut community to be announced to ebgp | | alloshut community to be announced to ebgp |
| neighe send-community-gshut-ebgp configuration | | neighe send-community-gshut-ebgp configuration |
| is aired. Note: changes to the attributes will | | is aired. Note: changes to the attributes will |
| not ect while activated."; | | not ect while activated."; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent activate from being inherited from the parent"; | | "Prevent activate from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container update { | | container update { |
| description | | description |
| "BGP Update configuration"; | | "BGP Update configuration"; |
| container in { | | container in { |
| description | | description |
| "Inbound update message handling"; | | "Inbound update message handling"; |
| container filtering { | | container filtering { |
| presence "Indicates a filtering node is configured."; | | presence "Indicates a filtering node is configured."; |
| description | | description |
| "Inbound update message filtering"; | | "Inbound update message filtering"; |
| container message { | | container message { |
| description | | description |
| "Filtered update messages"; | | "Filtered update messages"; |
| leaf buffers { | | leaf buffers { |
| type uint32 { | | type uint32 { |
| range "0..25" { | | range "0..25" { |
| description | | description |
| "Number of buffers to store filtered update messages (resizing does not take effect after filtering action has started)"; | | "Number of buffers to store filtered update messages (resizing does not take effect after filtering action has started)"; |
| } | | } |
| } | | } |
| must "not(../non-circular)"; | | must "not(../non-circular)"; |
| description | | description |
| "Filtered update message buffers"; | | "Filtered update message buffers"; |
| } | | } |
| container non-circular { | | container non-circular { |
| must "not(../buffers)"; | | must "not(../buffers)"; |
| presence "Indicates a non-circular node is configured."; | | presence "Indicates a non-circular node is configured."; |
| description | | description |
| "Message buffer list is not circular"; | | "Message buffer list is not circular"; |
| } | | } |
| } | | } |
| container logging { | | container logging { |
| description | | description |
| "Update filtering syslog message"; | | "Update filtering syslog message"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable update filtering syslog message"; | | "Disable update filtering syslog message"; |
| } | | } |
| } | | } |
| container attribute-filter { | | container attribute-filter { |
| description | | description |
| "Attribute-filter configuration"; | | "Attribute-filter configuration"; |
| leaf group { | | leaf group { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Attribute-filter group name"; | | "Attribute-filter group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attribute-filter group configuration"; | | "Attribute-filter group configuration"; |
| } | | } |
| } | | } |
| } | | } |
| container error-handling { | | container error-handling { |
| description | | description |
| "Inbound update message error handling"; | | "Inbound update message error handling"; |
| container avoid-reset { | | container avoid-reset { |
| presence "Indicates a avoid-reset node is configured."; | | presence "Indicates a avoid-reset node is configured."; |
| description | | description |
| "Avoid neighbor reset during inbound update message error handling"; | | "Avoid neighbor reset during inbound update message error handling"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Neighbor may be reset during inbound update message error handling"; | | "Neighbor may be reset during inbound update message error handling"; |
| } | | } |
| } | | } |
| container treat-as-withdraw { | | container treat-as-withdraw { |
| presence "Indicates a treat-as-withdraw node is configured."; | | presence "Indicates a treat-as-withdraw node is configured."; |
| description | | description |
| "Treat NLRIs as withdraws during inbound update message error handling"; | | "Treat NLRIs as withdraws during inbound update message error handling"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable treat NLRIs as withdraws during inbound update message error handling"; | | "Disable treat NLRIs as withdraws during inbound update message error handling"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf remote-as { | | leaf remote-as { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| leaf remote-as-list { | | leaf remote-as-list { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "as-list name"; | | "as-list name"; |
| } | | } |
| } | | } |
| description | | description |
| "Remote as-list configuration"; | | "Remote as-list configuration"; |
| } | | } |
| container use { | | container use { |
| description | | description |
| "Inherit configuration from a group"; | | "Inherit configuration from a group"; |
| leaf session-group { | | leaf session-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Session group name"; | | "Session group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit address-family independent config from a session-group"; | | "Inherit address-family independent config from a session-group"; |
| } | | } |
| leaf neighbor-group { | | leaf neighbor-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Neighbor-group name"; | | "Neighbor-group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit configuration from a neighbor-group"; | | "Inherit configuration from a neighbor-group"; |
| } | | } |
| } | | } |
| container advertisement-interval { | | container advertisement-interval { |
| presence "Indicates a advertisement-interval node is configured."; | | presence "Indicates a advertisement-interval node is configured."; |
| description | | description |
| "Minimum interval between sending BGP routing updates"; | | "Minimum interval between sending BGP routing updates"; |
| leaf time-in-seconds { | | leaf time-in-seconds { |
| type uint32 { | | type uint32 { |
| range "0..600" { | | range "0..600" { |
| description | | description |
| "time in seconds"; | | "time in seconds"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Minimum interval between sending BGP routing updates"; | | "Minimum interval between sending BGP routing updates"; |
| } | | } |
| leaf time-in-milliseconds { | | leaf time-in-milliseconds { |
| type uint32 { | | type uint32 { |
| range "0..999" { | | range "0..999" { |
| description | | description |
| "time in milliseconds"; | | "time in milliseconds"; |
| } | | } |
| } | | } |
| description | | description |
| "time in milliseconds"; | | "time in milliseconds"; |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Up to 256 characters describing this neighbor"; | | "Up to 256 characters describing this neighbor"; |
| } | | } |
| } | | } |
| description | | description |
| "Neighbor specific description"; | | "Neighbor specific description"; |
| } | | } |
| container ignore-connected-check { | | container ignore-connected-check { |
| presence "Indicates a ignore-connected-check node is configured."; | | presence "Indicates a ignore-connected-check node is configured."; |
| description | | description |
| "Bypass the directly connected nexthop check for single-hop eBGP peering"; | | "Bypass the directly connected nexthop check for single-hop eBGP peering"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ignore-connected-check from being inherited from the parent"; | | "Prevent ignore-connected-check from being inherited from the parent"; |
| } | | } |
| } | | } |
| container internal-vpn-client { | | container internal-vpn-client { |
| presence "Indicates a internal-vpn-client node is configured."; | | presence "Indicates a internal-vpn-client node is configured."; |
| description | | description |
| "Preserve iBGP CE neighbor path in ATTR_SET across VPN core"; | | "Preserve iBGP CE neighbor path in ATTR_SET across VPN core"; |
| } | | } |
| container ebgp-multihop { | | container ebgp-multihop { |
| presence "Indicates a ebgp-multihop node is configured."; | | presence "Indicates a ebgp-multihop node is configured."; |
| description | | description |
| "Allow EBGP neighbors not on directly connected networks"; | | "Allow EBGP neighbors not on directly connected networks"; |
| leaf maximum-hop-count { | | leaf maximum-hop-count { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "maximum hop count"; | | "maximum hop count"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "maximum hop count"; | | "maximum hop count"; |
| } | | } |
| container mpls { | | container mpls { |
| presence "Indicates a mpls node is configured."; | | presence "Indicates a mpls node is configured."; |
| description | | description |
| "Disable BGP MPLS forwarding"; | | "Disable BGP MPLS forwarding"; |
| } | | } |
| } | | } |
| container tcp { | | container tcp { |
| description | | description |
| "TCP session configuration commands"; | | "TCP session configuration commands"; |
| container mss { | | container mss { |
| must "initial-mss or inheritance-disable"; | | must "initial-mss or inheritance-disable"; |
| presence "Indicates a mss node is configured."; | | presence "Indicates a mss node is configured."; |
| description | | description |
| "Maximum Segment Size"; | | "Maximum Segment Size"; |
| leaf initial-mss { | | leaf initial-mss { |
| type uint32 { | | type uint32 { |
| range "68..10000" { | | range "68..10000" { |
| description | | description |
| "TCP initial maximum segment size"; | | "TCP initial maximum segment size"; |
| } | | } |
| } | | } |
| description | | description |
| "TCP initial maximum segment size"; | | "TCP initial maximum segment size"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent tcp mss from being inherited from the parent"; | | "Prevent tcp mss from being inherited from the parent"; |
| } | | } |
| } | | } |
| container ip-only-preferred { | | container ip-only-preferred { |
| presence "Indicates an ip-only-preferred node is configured."; | | presence "Indicates an ip-only-preferred node is configured."; |
| description | | description |
| "Prefer to send BGP control plane traffic on IP"; | | "Prefer to send BGP control plane traffic on IP"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates an inheritance-disable node is configured."; | | presence "Indicates an inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| } | | } |
| container bmp-activate { | | container bmp-activate { |
| description | | description |
| "Enable BMP logging for this neighbor"; | | "Enable BMP logging for this neighbor"; |
| container servers { | | container servers { |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| list server { | | list server { |
| key "server-id"; | | key "server-id"; |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| leaf server-id { | | leaf server-id { |
| type uint32 { | | type uint32 { |
| range "1..8" { | | range "1..8" { |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| } | | } |
| } | | } |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container bfd { | | container bfd { |
| description | | description |
| "Configure BFD parameters"; | | "Configure BFD parameters"; |
| container fast-detect { | | container fast-detect { |
| must "not(strict-mode and inheritance-disable)"; | | must "not(strict-mode and inheritance-disable)"; |
| presence "Indicates a fast-detect node is configured."; | | presence "Indicates a fast-detect node is configured."; |
| description | | description |
| "Enable Fast detection"; | | "Enable Fast detection"; |
| container strict-mode { | | container strict-mode { |
| presence "Indicates a strict-mode node is configured."; | | presence "Indicates a strict-mode node is configured."; |
| description | | description |
| "Hold down neighbor session until BFD session is up"; | | "Hold down neighbor session until BFD session is up"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Prevent bfd settings from being inherited from the parent"; | | "Prevent bfd settings from being inherited from the parent"; |
| } | | } |
| } | | } |
| leaf minimum-interval { | | leaf minimum-interval { |
| type uint32 { | | type uint32 { |
| range "3..30000" { | | range "3..30000" { |
| description | | description |
| "hello interval in milli-seconds"; | | "hello interval in milli-seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Hello interval"; | | "Hello interval"; |
| } | | } |
| leaf multiplier { | | leaf multiplier { |
| type uint32 { | | type uint32 { |
| range "2..16" { | | range "2..16" { |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| container keychain { | | container keychain { |
| must "name or inheritance-disable"; | | must "name or inheritance-disable"; |
| presence "Indicates a keychain node is configured."; | | presence "Indicates a keychain node is configured."; |
| description | | description |
| "Set keychain based authentication"; | | "Set keychain based authentication"; |
| leaf name { | | leaf name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent keychain from being inherited from parent"; | | "Prevent keychain from being inherited from parent"; |
| } | | } |
| } | | } |
| container local-as { | | container local-as { |
| must "as-number or inheritance-disable"; | | must "as-number or inheritance-disable"; |
| presence "Indicates a local-as node is configured."; | | presence "Indicates a local-as node is configured."; |
| description | | description |
| "Specify local AS number"; | | "Specify local AS number"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| container no-prepend { | | container no-prepend { |
| presence "Indicates a no-prepend node is configured."; | | presence "Indicates a no-prepend node is configured."; |
| description | | description |
| "Do not prepend local AS to announcements from this neighbor"; | | "Do not prepend local AS to announcements from this neighbor"; |
| container replace-as { | | container replace-as { |
| presence "Indicates a replace-as node is configured."; | | presence "Indicates a replace-as node is configured."; |
| description | | description |
| "Prepend only local AS to announcements to this neighbor"; | | "Prepend only local AS to announcements to this neighbor"; |
| container dual-as { | | container dual-as { |
| presence "Indicates a dual-as node is configured."; | | presence "Indicates a dual-as node is configured."; |
| description | | description |
| "Dual-AS mode"; | | "Dual-AS mode"; |
| } | | } |
| } | | } |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local AS from being inherited from parent"; | | "Prevent local AS from being inherited from parent"; |
| } | | } |
| } | | } |
| container password { | | container password { |
| must "encrypted or inheritance-disable"; | | must "encrypted or inheritance-disable"; |
| presence "Indicates a password node is configured."; | | presence "Indicates a password node is configured."; |
| description | | description |
| "Set a password"; | | "Set a password"; |
| leaf encrypted { | | leaf encrypted { |
| type xr:Proprietary-password; | | type xr:Proprietary-password; |
| description | | description |
| "Specifies an ENCRYPTED password will follow"; | | "Specifies an ENCRYPTED password will follow"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent password from being inherited from parent"; | | "Prevent password from being inherited from parent"; |
| } | | } |
| } | | } |
| container receive-buffer-size { | | container receive-buffer-size { |
| presence "Indicates a receive-buffer-size node is configured."; | | presence "Indicates a receive-buffer-size node is configured."; |
| description | | description |
| "Set socket and BGP receive buffer size"; | | "Set socket and BGP receive buffer size"; |
| leaf receive-socket-buffer-size { | | leaf receive-socket-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "Receive socket buffer size in bytes"; | | "Receive socket buffer size in bytes"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Set socket and BGP receive buffer size"; | | "Set socket and BGP receive buffer size"; |
| } | | } |
| leaf bgp-read-buffer-size { | | leaf bgp-read-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| container send-buffer-size { | | container send-buffer-size { |
| presence "Indicates a send-buffer-size node is configured."; | | presence "Indicates a send-buffer-size node is configured."; |
| description | | description |
| "Set socket and BGP send buffer size"; | | "Set socket and BGP send buffer size"; |
| leaf send-socket-buffer-size { | | leaf send-socket-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "Send socket buffer size in bytes"; | | "Send socket buffer size in bytes"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Set socket and BGP send buffer size"; | | "Set socket and BGP send buffer size"; |
| } | | } |
| leaf bgp-write-buffer-size { | | leaf bgp-write-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| } | | } |
| container shutdown { | | container shutdown { |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Administratively shut down this neighbor"; | | "Administratively shut down this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent this neighbor being shutdown, even if its parent is"; | | "Prevent this neighbor being shutdown, even if its parent is"; |
| } | | } |
| } | | } |
| container fast-fallover { | | container fast-fallover { |
| presence "Indicates a fast-fallover node is configured."; | | presence "Indicates a fast-fallover node is configured."; |
| description | | description |
| "Force neighbor to be directly connected. Bring neighbor down if its interface goes down"; | | "Force neighbor to be directly connected. Bring neighbor down if its interface goes down"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent this neighbor from inheriting this config from a group it is in"; | | "Prevent this neighbor from inheriting this config from a group it is in"; |
| } | | } |
| } | | } |
| container timers { | | container timers { |
| presence "Indicates a timers node is configured."; | | presence "Indicates a timers node is configured."; |
| description | | description |
| "BGP per neighbor timers"; | | "BGP per neighbor timers"; |
| leaf keepalive-interval { | | leaf keepalive-interval { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "Keepalive interval"; | | "Keepalive interval"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "BGP timers"; | | "BGP timers"; |
| } | | } |
| leaf holdtime { | | leaf holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Holdtime."; | | "Holdtime."; |
| } | | } |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Holdtime. Set 0 to disable keepalives/hold time."; | | "Holdtime. Set 0 to disable keepalives/hold time."; |
| } | | } |
| leaf minimum-acceptable-holdtime { | | leaf minimum-acceptable-holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Minimum acceptable holdtime from neighbor."; | | "Minimum acceptable holdtime from neighbor."; |
| } | | } |
| } | | } |
| } | | } |
| description | | description |
| "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; | | "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| container local { | | container local { |
| description | | description |
| "Configure local parameter"; | | "Configure local parameter"; |
| container address { | | container address { |
| must "ip-address or inheritance-disable"; | | must "ip-address or inheritance-disable"; |
| presence "Indicates a address node is configured."; | | presence "Indicates a address node is configured."; |
| description | | description |
| "use configured local address for bgp peering"; | | "use configured local address for bgp peering"; |
| leaf ip-address { | | leaf ip-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IPv4 address"; | | "IPv4 address"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local address from being inherited from parent"; | | "Prevent local address from being inherited from parent"; |
| } | | } |
| } | | } |
| } | | } |
| container log { | | container log { |
| description | | description |
| "Logging update messages per neighbor"; | | "Logging update messages per neighbor"; |
| container message { | | container message { |
| description | | description |
| "Logging update/notification messages per neighbor"; | | "Logging update/notification messages per neighbor"; |
| container in { | | container in { |
| description | | description |
| "Inbound log messages"; | | "Inbound log messages"; |
| leaf message-log-buffer-size { | | leaf message-log-buffer-size { |
| type uint32 { | | type uint32 { |
| range "1..500" { | | range "1..500" { |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| } | | } |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable inbound message logging"; | | "Disable inbound message logging"; |
| } | | } |
| container inheritance-diable { | | container inheritance-diable { |
| presence "Indicates a inheritance-diable node is configured."; | | presence "Indicates a inheritance-diable node is configured."; |
| description | | description |
| "Prevents the msg log from being inherited from the parent"; | | "Prevents the msg log from being inherited from the parent"; |
| } | | } |
| } | | } |
| container out { | | container out { |
| description | | description |
| "Outbound log messages"; | | "Outbound log messages"; |
| leaf message-log-buffer-size { | | leaf message-log-buffer-size { |
| type uint32 { | | type uint32 { |
| range "1..500" { | | range "1..500" { |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| } | | } |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable outbound message logging"; | | "Disable outbound message logging"; |
| } | | } |
| container inheritance-diable { | | container inheritance-diable { |
| presence "Indicates a inheritance-diable node is configured."; | | presence "Indicates a inheritance-diable node is configured."; |
| description | | description |
| "Prevents the msg log from being inherited from the parent"; | | "Prevents the msg log from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container neighbor { | | container neighbor { |
| description | | description |
| "Log neighbor state info"; | | "Log neighbor state info"; |
| container changes { | | container changes { |
| description | | description |
| "Log neighbor state changes"; | | "Log neighbor state changes"; |
| container detail { | | container detail { |
| must "not(../disable or ../inheritance-disable)"; | | must "not(../disable or ../inheritance-disable)"; |
| presence "Indicates a detail node is configured."; | | presence "Indicates a detail node is configured."; |
| description | | description |
| "detail"; | | "detail"; |
| } | | } |
| container disable { | | container disable { |
| must "not(../detail or ../inheritance-disable)"; | | must "not(../detail or ../inheritance-disable)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable"; | | "disable"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../detail or ../disable)"; | | must "not(../detail or ../disable)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevents the log state changes from being inherited from the parent"; | | "Prevents the log state changes from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf update-source { | | leaf update-source { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Source of routing updates"; | | "Source of routing updates"; |
| } | | } |
| container local-address-subnet { | | container local-address-subnet { |
| description | | description |
| "Local address subnet of routing updates"; | | "Local address subnet of routing updates"; |
| leaf ip-address { | | leaf ip-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IP address and mask length"; | | "IP address and mask length"; |
| } | | } |
| leaf mask-length { | | leaf mask-length { |
| type uint32 { | | type uint32 { |
| range "0..128" { | | range "0..128" { |
| description | | description |
| "IP address mask length"; | | "IP address mask length"; |
| } | | } |
| } | | } |
| description | | description |
| "IP address and mask length"; | | "IP address and mask length"; |
| } | | } |
| } | | } |
| container dmz-link-bandwidth { | | container dmz-link-bandwidth { |
| presence "Indicates a dmz-link-bandwidth node is configured."; | | presence "Indicates a dmz-link-bandwidth node is configured."; |
| description | | description |
| "Propagate the DMZ link bandwidth"; | | "Propagate the DMZ link bandwidth"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent dmz-link-bandwidth from being inherited from the parent"; | | "Prevent dmz-link-bandwidth from being inherited from the parent"; |
| } | | } |
| } | | } |
| container ebgp-recv-extcommunity-dmz { | | container ebgp-recv-extcommunity-dmz { |
| presence "Indicates a ebgp-recv-extcommunity-dmz node is configured."; | | presence "Indicates a ebgp-recv-extcommunity-dmz node is configured."; |
| description | | description |
| "Receive extcommunity dmz link bandwidth from ebgp neighbor"; | | "Receive extcommunity dmz link bandwidth from ebgp neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ebgp-send-community-dmz from being inherited from parent"; | | "Prevent ebgp-send-community-dmz from being inherited from parent"; |
| } | | } |
| } | | } |
| container ebgp-send-extcommunity-dmz { | | container ebgp-send-extcommunity-dmz { |
| must "not(cumulative and inheritance-disable)"; | | must "not(cumulative and inheritance-disable)"; |
| presence "Indicates a ebgp-send-extcommunity-dmz node is configured."; | | presence "Indicates a ebgp-send-extcommunity-dmz node is configured."; |
| description | | description |
| "Send extended community dmz link bandwidth to ebgp neighbor"; | | "Send extended community dmz link bandwidth to ebgp neighbor"; |
| container cumulative { | | container cumulative { |
| presence "Indicates a cumulative node is configured."; | | presence "Indicates a cumulative node is configured."; |
| description | | description |
| "Send cumulative community dmz link bandwidth of all multipaths to ebgp neighbor"; | | "Send cumulative community dmz link bandwidth of all multipaths to ebgp neighbor"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ebgp-send-extcommunity-dmz from being inherited from parent"; | | "Prevent ebgp-send-extcommunity-dmz from being inherited from parent"; |
| } | | } |
| } | | } |
| container ttl-security { | | container ttl-security { |
| presence "Indicates a ttl-security node is configured."; | | presence "Indicates a ttl-security node is configured."; |
| description | | description |
| "Enable EBGP TTL security"; | | "Enable EBGP TTL security"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ttl-security from being inherited from the parent"; | | "Prevent ttl-security from being inherited from the parent"; |
| } | | } |
| } | | } |
| container session-open-mode { | | container session-open-mode { |
| description | | description |
| "Establish BGP session using this TCP open mode"; | | "Establish BGP session using this TCP open mode"; |
| container active-only { | | container active-only { |
| must "not(../passive-only or ../both)"; | | must "not(../passive-only or ../both)"; |
| presence "Indicates a active-only node is configured."; | | presence "Indicates a active-only node is configured."; |
| description | | description |
| "Active only"; | | "Active only"; |
| } | | } |
| container passive-only { | | container passive-only { |
| must "not(../active-only or ../both)"; | | must "not(../active-only or ../both)"; |
| presence "Indicates a passive-only node is configured."; | | presence "Indicates a passive-only node is configured."; |
| description | | description |
| "Passive only"; | | "Passive only"; |
| } | | } |
| container both { | | container both { |
| must "not(../active-only or ../passive-only)"; | | must "not(../active-only or ../passive-only)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Prevent session-open-mode being inherited from the parent"; | | "Prevent session-open-mode being inherited from the parent"; |
| } | | } |
| } | | } |
| leaf dscp { | | leaf dscp { |
| type enumeration { | | type enumeration { |
| enum "default" { | | enum "default" { |
| value 0; | | value 0; |
| description | | description |
| "Set packets with default dscp (000000)"; | | "Set packets with default dscp (000000)"; |
| } | | } |
| enum "cs1" { | | enum "cs1" { |
| value 8; | | value 8; |
| description | | description |
| "Set packets with CS1(precedence 1) dscp (001000)"; | | "Set packets with CS1(precedence 1) dscp (001000)"; |
| } | | } |
| enum "af11" { | | enum "af11" { |
| value 10; | | value 10; |
| description | | description |
| "Set packets with AF11 dscp (001010)"; | | "Set packets with AF11 dscp (001010)"; |
| } | | } |
| enum "af12" { | | enum "af12" { |
| value 12; | | value 12; |
| description | | description |
| "Set packets with AF12 dscp (001100)"; | | "Set packets with AF12 dscp (001100)"; |
| } | | } |
| enum "af13" { | | enum "af13" { |
| value 14; | | value 14; |
| description | | description |
| "Set packets with AF13 dscp (001110)"; | | "Set packets with AF13 dscp (001110)"; |
| } | | } |
| enum "cs2" { | | enum "cs2" { |
| value 16; | | value 16; |
| description | | description |
| "Set packets with CS2(precedence 2) dscp (010000)"; | | "Set packets with CS2(precedence 2) dscp (010000)"; |
| } | | } |
| enum "af21" { | | enum "af21" { |
| value 18; | | value 18; |
| description | | description |
| "Set packets with AF21 dscp (010010)"; | | "Set packets with AF21 dscp (010010)"; |
| } | | } |
| enum "af22" { | | enum "af22" { |
| value 20; | | value 20; |
| description | | description |
| "Set packets with AF22 dscp (010100)"; | | "Set packets with AF22 dscp (010100)"; |
| } | | } |
| enum "af23" { | | enum "af23" { |
| value 22; | | value 22; |
| description | | description |
| "Set packets with AF23 dscp (010110)"; | | "Set packets with AF23 dscp (010110)"; |
| } | | } |
| enum "cs3" { | | enum "cs3" { |
| value 24; | | value 24; |
| description | | description |
| "Set packets with CS3(precedence 3) dscp (011000)"; | | "Set packets with CS3(precedence 3) dscp (011000)"; |
| } | | } |
| enum "af31" { | | enum "af31" { |
| value 26; | | value 26; |
| description | | description |
| "Set packets with AF31 dscp (011010)"; | | "Set packets with AF31 dscp (011010)"; |
| } | | } |
| enum "af32" { | | enum "af32" { |
| value 28; | | value 28; |
| description | | description |
| "Set packets with AF32 dscp (011100)"; | | "Set packets with AF32 dscp (011100)"; |
| } | | } |
| enum "af33" { | | enum "af33" { |
| value 30; | | value 30; |
| description | | description |
| "Set packets with AF33 dscp (011110)"; | | "Set packets with AF33 dscp (011110)"; |
| } | | } |
| enum "cs4" { | | enum "cs4" { |
| value 32; | | value 32; |
| description | | description |
| "Set packets with CS4(precedence 4) dscp (100000)"; | | "Set packets with CS4(precedence 4) dscp (100000)"; |
| } | | } |
| enum "af41" { | | enum "af41" { |
| value 34; | | value 34; |
| description | | description |
| "Set packets with AF41 dscp (100010)"; | | "Set packets with AF41 dscp (100010)"; |
| } | | } |
| enum "af42" { | | enum "af42" { |
| value 36; | | value 36; |
| description | | description |
| "Set packets with AF42 dscp (100100)"; | | "Set packets with AF42 dscp (100100)"; |
| } | | } |
| enum "af43" { | | enum "af43" { |
| value 38; | | value 38; |
| description | | description |
| "Set packets with AF43 dscp (100110)"; | | "Set packets with AF43 dscp (100110)"; |
| } | | } |
| enum "cs5" { | | enum "cs5" { |
| value 40; | | value 40; |
| description | | description |
| "Set packets with CS5(precedence 5) dscp (101000)"; | | "Set packets with CS5(precedence 5) dscp (101000)"; |
| } | | } |
| enum "ef" { | | enum "ef" { |
| value 46; | | value 46; |
| description | | description |
| "Set packets with EF dscp (101110)"; | | "Set packets with EF dscp (101110)"; |
| } | | } |
| enum "cs6" { | | enum "cs6" { |
| value 48; | | value 48; |
| description | | description |
| "Set packets with CS6(precedence 6) dscp (110000)"; | | "Set packets with CS6(precedence 6) dscp (110000)"; |
| } | | } |
| enum "cs7" { | | enum "cs7" { |
| value 56; | | value 56; |
| description | | description |
| "Set packets with CS7(precedence 7) dscp (111000)"; | | "Set packets with CS7(precedence 7) dscp (111000)"; |
| } | | } |
| } | | } |
| description | | description |
| "Set IP DSCP (DiffServ CodePoint)"; | | "Set IP DSCP (DiffServ CodePoint)"; |
| } | | } |
| leaf precedence { | | leaf precedence { |
| type enumeration { | | type enumeration { |
| enum "routine" { | | enum "routine" { |
| value 0; | | value 0; |
| description | | description |
| "Set packets with routine precedence (0)"; | | "Set packets with routine precedence (0)"; |
| } | | } |
| enum "priority" { | | enum "priority" { |
| value 1; | | value 1; |
| description | | description |
| "Set packets with priority precedence (1)"; | | "Set packets with priority precedence (1)"; |
| } | | } |
| enum "immediate" { | | enum "immediate" { |
| value 2; | | value 2; |
| description | | description |
| "Set packets with immediate precedence (2)"; | | "Set packets with immediate precedence (2)"; |
| } | | } |
| enum "flash" { | | enum "flash" { |
| value 3; | | value 3; |
| description | | description |
| "Set packets with flash precedence (3)"; | | "Set packets with flash precedence (3)"; |
| } | | } |
| enum "flash-override" { | | enum "flash-override" { |
| value 4; | | value 4; |
| description | | description |
| "Set packets with flash override precedence (4)"; | | "Set packets with flash override precedence (4)"; |
| } | | } |
| enum "critical" { | | enum "critical" { |
| value 5; | | value 5; |
| description | | description |
| "Set packets with critical precedence (5)"; | | "Set packets with critical precedence (5)"; |
| } | | } |
| enum "internet" { | | enum "internet" { |
| value 6; | | value 6; |
| description | | description |
| "Set packets with internetwork control precedence (6)"; | | "Set packets with internetwork control precedence (6)"; |
| } | | } |
| enum "network" { | | enum "network" { |
| value 7; | | value 7; |
| description | | description |
| "Set packets with network control precedence (7)"; | | "Set packets with network control precedence (7)"; |
| } | | } |
| } | | } |
| description | | description |
| "Set precedence"; | | "Set precedence"; |
| } | | } |
| container capability { | | container capability { |
| description | | description |
| "Advertise capability to the peer"; | | "Advertise capability to the peer"; |
| container suppress { | | container suppress { |
| description | | description |
| "Suppress advertising capability to the peer "; | | "Suppress advertising capability to the peer "; |
| container four-byte-as { | | container four-byte-as { |
| presence "Indicates a four-byte-as node is configured."; | | presence "Indicates a four-byte-as node is configured."; |
| description | | description |
| "4-byte-as capability"; | | "4-byte-as capability"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent capability suppress 4-type-as being inherited from the parent"; | | "Prevent capability suppress 4-type-as being inherited from the parent"; |
| } | | } |
| } | | } |
| container all { | | container all { |
| presence "Indicates a all node is configured."; | | presence "Indicates a all node is configured."; |
| description | | description |
| "All capabilities"; | | "All capabilities"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| container extended-nexthop-encoding { | | container extended-nexthop-encoding { |
| presence "Indicates a extended-nexthop-encoding node is configured."; | | presence "Indicates a extended-nexthop-encoding node is configured."; |
| description | | description |
| "Extended-nexthop-encoding capabilities (IETF RFC 5549)"; | | "Extended-nexthop-encoding capabilities (IETF RFC 5549)"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| } | | } |
| container additional-paths { | | container additional-paths { |
| description | | description |
| "Additional paths capability"; | | "Additional paths capability"; |
| container send { | | container send { |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Additional paths Send capability"; | | "Additional paths Send capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise additional paths Send capability"; | | "Do not advertise additional paths Send capability"; |
| } | | } |
| } | | } |
| container receive { | | container receive { |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Additional paths Receive capability"; | | "Additional paths Receive capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise additional paths Receive capability"; | | "Do not advertise additional paths Receive capability"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container graceful-restart { | | container graceful-restart { |
| presence "Indicates a graceful-restart node is configured."; | | presence "Indicates a graceful-restart node is configured."; |
| description | | description |
| "Enable graceful restart support for this neighbor"; | | "Enable graceful restart support for this neighbor"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable graceful restart support for this neighbor"; | | "Disable graceful restart support for this neighbor"; |
| } | | } |
| leaf restart-time { | | leaf restart-time { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart time advertised to the neighbor"; | | "Restart time advertised to the neighbor"; |
| } | | } |
| leaf stalepath-time { | | leaf stalepath-time { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum time to wait for restart of GR capable peer"; | | "Maximum time to wait for restart of GR capable peer"; |
| } | | } |
| } | | } |
| container enforce-first-as { | | container enforce-first-as { |
| presence "Indicates a enforce-first-as node is configured."; | | presence "Indicates a enforce-first-as node is configured."; |
| description | | description |
| "Enforce the first AS for EBGP routes"; | | "Enforce the first AS for EBGP routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not enforce the first AS for EBGP routes"; | | "Do not enforce the first AS for EBGP routes"; |
| } | | } |
| } | | } |
| container cluster-id { | | container cluster-id { |
| description | | description |
| "Enter cluster id for this neighbor"; | | "Enter cluster id for this neighbor"; |
| leaf route-reflector-cluster-id { | | leaf route-reflector-cluster-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Route-Reflector Cluster-id as 32 bit quantity"; | | "Route-Reflector Cluster-id as 32 bit quantity"; |
| } | | } |
| } | | } |
| description | | description |
| "Route-Reflector Cluster-id as 32 bit quantity"; | | "Route-Reflector Cluster-id as 32 bit quantity"; |
| } | | } |
| leaf ip-address { | | leaf ip-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "configure this node"; | | "configure this node"; |
| } | | } |
| } | | } |
| leaf maximum-peers { | | leaf maximum-peers { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Maximum number of peers"; | | "Maximum number of peers"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum dynamic neighbors"; | | "Maximum dynamic neighbors"; |
| } | | } |
| leaf idle-watch-time { | | leaf idle-watch-time { |
| type uint32 { | | type uint32 { |
| range "30..1800" { | | range "30..1800" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum time to wait for deletion of IDLE state dynamic peer"; | | "Maximum time to wait for deletion of IDLE state dynamic peer"; |
| } | | } |
| container egress-engineering { | | container egress-engineering { |
| presence "Indicates a egress-engineering node is configured."; | | presence "Indicates a egress-engineering node is configured."; |
| description | | description |
| "Enable egress peer engineering for this neighbor"; | | "Enable egress peer engineering for this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit egress-engineering from the parent"; | | "Do not inherit egress-engineering from the parent"; |
| } | | } |
| } | | } |
| container peer-sets { | | container peer-sets { |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| list peer-set { | | list peer-set { |
| key "peer-set-id"; | | key "peer-set-id"; |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| leaf peer-set-id { | | leaf peer-set-id { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Identity value of peer-set"; | | "Identity value of peer-set"; |
| } | | } |
| } | | } |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| } | | } |
| } | | } |
| } | | } |
| container ao { | | container ao { |
| description | | description |
| "Enable Authentiation Option"; | | "Enable Authentiation Option"; |
| leaf key-chain-name { | | leaf key-chain-name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| } | | } |
| must "not(../inheritance-disable) and (../include-tcp-options/enable or ../include-tcp-options/disable)"; | | must "not(../inheritance-disable) and (../include-tcp-options/enable or ../include-tcp-options/disable)"; |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| container include-tcp-options { | | container include-tcp-options { |
| description | | description |
| "Include/Exclude other TCP options in the header"; | | "Include/Exclude other TCP options in the header"; |
| container enable { | | container enable { |
| must "not(../disable or ../../inheritance-disable)"; | | must "not(../disable or ../../inheritance-disable)"; |
| presence "Indicates a enable node is configured."; | | presence "Indicates a enable node is configured."; |
| description | | description |
| "Include other TCP options in the header"; | | "Include other TCP options in the header"; |
| } | | } |
| container disable { | | container disable { |
| must "not(../enable or ../../inheritance-disable)"; | | must "not(../enable or ../../inheritance-disable)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Exclude other TCP options in the header"; | | "Exclude other TCP options in the header"; |
| } | | } |
| container accept-ao-mismatch-connection { | | container accept-ao-mismatch-connection { |
| must "../enable or ../disable"; | | must "../enable or ../disable"; |
| presence "Indicates a accept-ao-mismatch-connection node is configured."; | | presence "Indicates a accept-ao-mismatch-connection node is configured."; |
| description | | description |
| "Accept new connection even if AO mismatched"; | | "Accept new connection even if AO mismatched"; |
| } | | } |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../key-chain-name)"; | | must "not(../key-chain-name)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent keychain from being inherited from parent"; | | "Prevent keychain from being inherited from parent"; |
| } | | } |
| } | | } |
| leaf maximum-prefix-restart-time { | | leaf maximum-prefix-restart-time { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Maximum prefix restart time (seconds)"; | | "Maximum prefix restart time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart timer interval"; | | "Restart timer interval"; |
| } | | } |
| } | | } |
| } | | } |
| container mpls { | | container mpls { |
| description | | description |
| "Enable mpls parameters"; | | "Enable mpls parameters"; |
| container activate { | | container activate { |
| description | | description |
| "Enter mpls interfaces in BGP mpls activate mode"; | | "Enter mpls interfaces in BGP mpls activate mode"; |
| container interfaces { | | container interfaces { |
| description | | description |
| "Interface to enable mpls"; | | "Interface to enable mpls"; |
| list interface { | | list interface { |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Interface to enable mpls"; | | "Interface to enable mpls"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Interface to enable mpls"; | | "Interface to enable mpls"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container as-league { | | container as-league { |
| presence "Indicates a as-league node is configured."; | | presence "Indicates a as-league node is configured."; |
| description | | description |
| "AS League command mode"; | | "AS League command mode"; |
| container peers { | | container peers { |
| description | | description |
| "AS League peers mode"; | | "AS League peers mode"; |
| list as { | | list as { |
| key "as-number"; | | key "as-number"; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container attribute-filter { | | container attribute-filter { |
| description | | description |
| "Attribute-filter configuration"; | | "Attribute-filter configuration"; |
| container groups { | | container groups { |
| description | | description |
| "Attribute-filter group command mode"; | | "Attribute-filter group command mode"; |
| list group { | | list group { |
| key "group-name"; | | key "group-name"; |
| description | | description |
| "Attribute-filter group command mode"; | | "Attribute-filter group command mode"; |
| leaf group-name { | | leaf group-name { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Attribute-filter group name"; | | "Attribute-filter group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attribute-filter group command mode"; | | "Attribute-filter group command mode"; |
| } | | } |
| container attributes { | | container attributes { |
| description | | description |
| "Attribute code"; | | "Attribute code"; |
| container ranges { | | container ranges { |
| description | | description |
| "Attribute code in range"; | | "Attribute code in range"; |
| list range { | | list range { |
| must "discard or treat-as-withdraw"; | | must "discard or treat-as-withdraw"; |
| key "start end"; | | key "start end"; |
| description | | description |
| "Attribute code in range"; | | "Attribute code in range"; |
| leaf start { | | leaf start { |
| type uint32 { | | type uint32 { |
| range "4..13 | 16..255"; | | range "4..13 | 16..255"; |
| } | | } |
| description | | description |
| "Attribute code range start"; | | "Attribute code range start"; |
| } | | } |
| leaf end { | | leaf end { |
| type uint32 { | | type uint32 { |
| range "5..13 | 17..255"; | | range "5..13 | 17..255"; |
| } | | } |
| description | | description |
| "Attribute code range end"; | | "Attribute code range end"; |
| } | | } |
| container discard { | | container discard { |
| presence "Indicates a discard node is configured."; | | presence "Indicates a discard node is configured."; |
| description | | description |
| "Discard this attribute"; | | "Discard this attribute"; |
| } | | } |
| container treat-as-withdraw { | | container treat-as-withdraw { |
| presence "Indicates a treat-as-withdraw node is configured."; | | presence "Indicates a treat-as-withdraw node is configured."; |
| description | | description |
| "Treat the update message as a Withdraw"; | | "Treat the update message as a Withdraw"; |
| } | | } |
| } | | } |
| } | | } |
| list attribute { | | list attribute { |
| must "discard or treat-as-withdraw"; | | must "discard or treat-as-withdraw"; |
| key "attribute-code"; | | key "attribute-code"; |
| description | | description |
| "Attribute code"; | | "Attribute code"; |
| leaf attribute-code { | | leaf attribute-code { |
| type Bgp-attribute-code; | | type Bgp-attribute-code; |
| description | | description |
| "Attribute code. Also to be set as range start"; | | "Attribute code. Also to be set as range start"; |
| } | | } |
| container discard { | | container discard { |
| presence "Indicates a discard node is configured."; | | presence "Indicates a discard node is configured."; |
| description | | description |
| "Discard this attribute"; | | "Discard this attribute"; |
| } | | } |
| container treat-as-withdraw { | | container treat-as-withdraw { |
| presence "Indicates a treat-as-withdraw node is configured."; | | presence "Indicates a treat-as-withdraw node is configured."; |
| description | | description |
| "Treat the update message as a Withdraw"; | | "Treat the update message as a Withdraw"; |
| } | | } |
| } | | } |
| container unrecognized { | | container unrecognized { |
| must "discard or treat-as-withdraw"; | | must "discard or treat-as-withdraw"; |
| presence "Indicates a unrecognized node is configured."; | | presence "Indicates a unrecognized node is configured."; |
| description | | description |
| "All unrecognized attributes"; | | "All unrecognized attributes"; |
| container discard { | | container discard { |
| presence "Indicates a discard node is configured."; | | presence "Indicates a discard node is configured."; |
| description | | description |
| "Discard this attribute"; | | "Discard this attribute"; |
| } | | } |
| container treat-as-withdraw { | | container treat-as-withdraw { |
| presence "Indicates a treat-as-withdraw node is configured."; | | presence "Indicates a treat-as-withdraw node is configured."; |
| description | | description |
| "Treat the update message as a Withdraw"; | | "Treat the update message as a Withdraw"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container default-information { | | container default-information { |
| description | | description |
| "Control distribution of default information"; | | "Control distribution of default information"; |
| container originate { | | container originate { |
| presence "Indicates a originate node is configured."; | | presence "Indicates a originate node is configured."; |
| description | | description |
| "Distribute a default route"; | | "Distribute a default route"; |
| } | | } |
| } | | } |
| leaf default-metric { | | leaf default-metric { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "default redistributed metric"; | | "default redistributed metric"; |
| } | | } |
| container socket { | | container socket { |
| description | | description |
| "set socket parameters"; | | "set socket parameters"; |
| leaf send-buffer-size { | | leaf send-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "Send socket buffer size in bytes"; | | "Send socket buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "socket send buffer size"; | | "socket send buffer size"; |
| } | | } |
| leaf bgp-write-buffer-size { | | leaf bgp-write-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| } | | } |
| must "../send-buffer-size"; | | must "../send-buffer-size"; |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| leaf receive-buffer-size { | | leaf receive-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "Receive socket buffer size in bytes"; | | "Receive socket buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "socket receive buffer size"; | | "socket receive buffer size"; |
| } | | } |
| leaf bgp-read-buffer-size { | | leaf bgp-read-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| must "../receive-buffer-size"; | | must "../receive-buffer-size"; |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| container nexthop { | | container nexthop { |
| description | | description |
| "Configure next-hop related items"; | | "Configure next-hop related items"; |
| container mpls { | | container mpls { |
| description | | description |
| "Configure next-hop related items for mpls"; | | "Configure next-hop related items for mpls"; |
| container forwarding { | | container forwarding { |
| description | | description |
| "Enable next hop mpls forwarding path"; | | "Enable next hop mpls forwarding path"; |
| container ibgp { | | container ibgp { |
| presence "Indicates a ibgp node is configured."; | | presence "Indicates a ibgp node is configured."; |
| description | | description |
| "Enable mpls forwarding path for ibgp learnt nexthops"; | | "Enable mpls forwarding path for ibgp learnt nexthops"; |
| } | | } |
| } | | } |
| } | | } |
| container resolution { | | container resolution { |
| description | | description |
| "Configure next-hop related items for resolution"; | | "Configure next-hop related items for resolution"; |
| container allow-default { | | container allow-default { |
| presence "Indicates a allow-default node is configured."; | | presence "Indicates a allow-default node is configured."; |
| description | | description |
| "Enable nexthops resolution using default route"; | | "Enable nexthops resolution using default route"; |
| } | | } |
| } | | } |
| container validation { | | container validation { |
| description | | description |
| "Configure next-hop reachability validation"; | | "Configure next-hop reachability validation"; |
| container color-extcomm { | | container color-extcomm { |
| description | | description |
| "Configure next-hop reachability validation for color-extcomm path"; | | "Configure next-hop reachability validation for color-extcomm path"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable next-hop reachability validation for color-extcomm path"; | | "Disable next-hop reachability validation for color-extcomm path"; |
| } | | } |
| container sr-policy { | | container sr-policy { |
| presence "Indicates a sr-policy node is configured."; | | presence "Indicates a sr-policy node is configured."; |
| description | | description |
| "Enable BGP next-hop reachability validation by SR Policy for color-extcomm paths"; | | "Enable BGP next-hop reachability validation by SR Policy for color-extcomm paths"; |
| } | | } |
| } | | } |
| } | | } |
| container srte-metric { | | container srte-metric { |
| description | | description |
| "Configure BGP next-hop metric inheritance from SR policy"; | | "Configure BGP next-hop metric inheritance from SR policy"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable BGP next-hop metric inheritance from SR policy"; | | "Disable BGP next-hop metric inheritance from SR policy"; |
| } | | } |
| } | | } |
| } | | } |
| container slow-peer { | | container slow-peer { |
| description | | description |
| "Configure slow-peer"; | | "Configure slow-peer"; |
| container dynamic { | | container dynamic { |
| must "not(../detection-disable)"; | | must "not(../detection-disable)"; |
| presence "Indicates a dynamic node is configured."; | | presence "Indicates a dynamic node is configured."; |
| description | | description |
| "Configure all neighbors as dynamic slow-peer"; | | "Configure all neighbors as dynamic slow-peer"; |
| leaf threshold { | | leaf threshold { |
| type uint16 { | | type uint16 { |
| range "120..3600" { | | range "120..3600" { |
| description | | description |
| "Threshold (in seconds) to detect neighbors as slow-peer"; | | "Threshold (in seconds) to detect neighbors as slow-peer"; |
| } | | } |
| } | | } |
| description | | description |
| "Threshold (in seconds) to detect neighbors as slow-peer"; | | "Threshold (in seconds) to detect neighbors as slow-peer"; |
| } | | } |
| } | | } |
| container detection-disable { | | container detection-disable { |
| must "not(../dynamic)"; | | must "not(../dynamic)"; |
| presence "Indicates a detection-disable node is configured."; | | presence "Indicates a detection-disable node is configured."; |
| description | | description |
| "Disable dynamic slow-peer detection"; | | "Disable dynamic slow-peer detection"; |
| } | | } |
| } | | } |
| container timers { | | container timers { |
| description | | description |
| "Adjust routing timers"; | | "Adjust routing timers"; |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "BGP timers"; | | "BGP timers"; |
| leaf keepalive-interval { | | leaf keepalive-interval { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "Keepalive interval"; | | "Keepalive interval"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "BGP timers"; | | "BGP timers"; |
| } | | } |
| leaf holdtime { | | leaf holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Holdtime."; | | "Holdtime."; |
| } | | } |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Holdtime. Set 0 to disable keepalives/hold time."; | | "Holdtime. Set 0 to disable keepalives/hold time."; |
| } | | } |
| leaf minimum-acceptable-holdtime { | | leaf minimum-acceptable-holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Minimum acceptable holdtime from neighbor."; | | "Minimum acceptable holdtime from neighbor."; |
| } | | } |
| } | | } |
| } | | } |
| description | | description |
| "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; | | "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| } | | } |
| container nsr { | | container nsr { |
| presence "Indicates a nsr node is configured."; | | presence "Indicates a nsr node is configured."; |
| description | | description |
| "Enable non-stop-routing support for all neighbors"; | | "Enable non-stop-routing support for all neighbors"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable non-stop-routing support for all neighbors"; | | "Disable non-stop-routing support for all neighbors"; |
| } | | } |
| } | | } |
| container ibgp { | | container ibgp { |
| description | | description |
| "Set options for iBGP peers"; | | "Set options for iBGP peers"; |
| container policy { | | container policy { |
| description | | description |
| "Set options for route-policy"; | | "Set options for route-policy"; |
| container out { | | container out { |
| description | | description |
| "Set options for outbound policy"; | | "Set options for outbound policy"; |
| container enforce-modifications { | | container enforce-modifications { |
| presence "Indicates a enforce-modifications node is configured."; | | presence "Indicates a enforce-modifications node is configured."; |
| description | | description |
| "Allow policy to modify all attributes"; | | "Allow policy to modify all attributes"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container mvpn { | | container mvpn { |
| presence "Indicates a mvpn node is configured."; | | presence "Indicates a mvpn node is configured."; |
| description | | description |
| "Connect to PIM/PIM6"; | | "Connect to PIM/PIM6"; |
| } | | } |
| container openconfig { | | container openconfig { |
| description | | description |
| "OpenConfig network-instance model related knob"; | | "OpenConfig network-instance model related knob"; |
| container rib-telemetry { | | container rib-telemetry { |
| presence "Indicates a rib-telemetry node is configured."; | | presence "Indicates a rib-telemetry node is configured."; |
| description | | description |
| "Telemetry streaming enabled for OC RIB model. Also, triggers the setting up of new data structures per latest OCNI model"; | | "Telemetry streaming enabled for OC RIB model. Also, triggers the setting up of new data structures per latest OCNI model"; |
| } | | } |
| } | | } |
| container graceful-maintenance { | | container graceful-maintenance { |
| description | | description |
| "Announce routes with the g-shut community and other | | "Announce routes with the g-shut community and other |
| attrs configured under the neighbors. This | | attrs configured under the neighbors. This |
| willeighbors to de-prefer routes from this | | willeighbors to de-prefer routes from this |
| routhoose alternates. This allows the router | | routhoose alternates. This allows the router |
| to bt in or out of service gracefully."; | | to bt in or out of service gracefully."; |
| container activate { | | container activate { |
| presence "Indicates a activate node is configured."; | | presence "Indicates a activate node is configured."; |
| description | | description |
| "All neighbors with graceful-maintenance config"; | | "All neighbors with graceful-maintenance config"; |
| container all-neighbors { | | container all-neighbors { |
| presence "Indicates a all-neighbors node is configured."; | | presence "Indicates a all-neighbors node is configured."; |
| description | | description |
| "Also neighbors without graceful-maintenance config"; | | "Also neighbors without graceful-maintenance config"; |
| } | | } |
| container retain-routes { | | container retain-routes { |
| presence "Indicates a retain-routes node is configured."; | | presence "Indicates a retain-routes node is configured."; |
| description | | description |
| "Keep BGP routes in RIB once BGP process stops"; | | "Keep BGP routes in RIB once BGP process stops"; |
| } | | } |
| container interfaces { | | container interfaces { |
| description | | description |
| "Enable graceful-maintenance on all directly connected ebgp neighbors whose session is going over this interface"; | | "Enable graceful-maintenance on all directly connected ebgp neighbors whose session is going over this interface"; |
| list interface { | | list interface { |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Enable graceful-maintenance on all directly connected ebgp neighbors whose session is going over this interface"; | | "Enable graceful-maintenance on all directly connected ebgp neighbors whose session is going over this interface"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Interface to enable graceful-maintenance"; | | "Interface to enable graceful-maintenance"; |
| } | | } |
| } | | } |
| } | | } |
| container locations { | | container locations { |
| description | | description |
| "Enable graceful-maintenance on all directly connected ebgp neighbors whose session is going over this line card location"; | | "Enable graceful-maintenance on all directly connected ebgp neighbors whose session is going over this line card location"; |
| list location { | | list location { |
| key "location-name"; | | key "location-name"; |
| description | | description |
| "Enable graceful-maintenance on all directly connected ebgp neighbors whose session is going over this line card location"; | | "Enable graceful-maintenance on all directly connected ebgp neighbors whose session is going over this line card location"; |
| leaf location-name { | | leaf location-name { |
| type xr:Node-id; | | type xr:Node-id; |
| description | | description |
| "Line card location to enable graceful-maintenance"; | | "Line card location to enable graceful-maintenance"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container optimal-route-reflection { | | container optimal-route-reflection { |
| description | | description |
| "Configure optimal-route-reflection group"; | | "Configure optimal-route-reflection group"; |
| container ipv4 { | | container ipv4 { |
| description | | description |
| "IPv4 ORR group"; | | "IPv4 ORR group"; |
| list orr-group { | | list orr-group { |
| key "orr-group-name"; | | key "orr-group-name"; |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| leaf orr-group-name { | | leaf orr-group-name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| leaf primary-address { | | leaf primary-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| mandatory true; | | mandatory true; |
| description | | description |
| "IPv4 primary address"; | | "IPv4 primary address"; |
| } | | } |
| leaf secondary-address { | | leaf secondary-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IPv4 secondary address"; | | "IPv4 secondary address"; |
| } | | } |
| leaf tertiary-address { | | leaf tertiary-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| must "../secondary-address"; | | must "../secondary-address"; |
| description | | description |
| "IPv4 tertiary address"; | | "IPv4 tertiary address"; |
| } | | } |
| leaf flex-algo { | | leaf flex-algo { |
| type uint32 { | | type uint32 { |
| range "128..255" { | | range "128..255" { |
| description | | description |
| "Flexiable Algorithm value"; | | "Flexiable Algorithm value"; |
| } | | } |
| } | | } |
| description | | description |
| "Flexible Algorithm"; | | "Flexible Algorithm"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route-policy for additional paths selection"; | | "Route-policy for additional paths selection"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv6 { | | container ipv6 { |
| description | | description |
| "IPv6 ORR group"; | | "IPv6 ORR group"; |
| list orr-group { | | list orr-group { |
| key "orr-group-name"; | | key "orr-group-name"; |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| leaf orr-group-name { | | leaf orr-group-name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| leaf primary-address { | | leaf primary-address { |
| type inet:ipv6-address-no-zone; | | type inet:ipv6-address-no-zone; |
| mandatory true; | | mandatory true; |
| description | | description |
| "IPv6 primary address"; | | "IPv6 primary address"; |
| } | | } |
| leaf secondary-address { | | leaf secondary-address { |
| type inet:ipv6-address-no-zone; | | type inet:ipv6-address-no-zone; |
| description | | description |
| "IPv6 secondary address"; | | "IPv6 secondary address"; |
| } | | } |
| leaf tertiary-address { | | leaf tertiary-address { |
| type inet:ipv6-address-no-zone; | | type inet:ipv6-address-no-zone; |
| must "../secondary-address"; | | must "../secondary-address"; |
| description | | description |
| "IPv6 tertiary address"; | | "IPv6 tertiary address"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route-policy for additional paths selection"; | | "Route-policy for additional paths selection"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container bgp { | | container bgp { |
| description | | description |
| "BGP commands"; | | "BGP commands"; |
| container as-path-loopcheck { | | container as-path-loopcheck { |
| presence "Indicates a as-path-loopcheck node is configured."; | | presence "Indicates a as-path-loopcheck node is configured."; |
| description | | description |
| "Enable AS-path loop checking for iBGP peers"; | | "Enable AS-path loop checking for iBGP peers"; |
| } | | } |
| container auto-policy-soft-reset { | | container auto-policy-soft-reset { |
| description | | description |
| "Enable automatic soft peer reset on policy reconfiguration"; | | "Enable automatic soft peer reset on policy reconfiguration"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable automatic soft peer reset on policy reconfiguration"; | | "Disable automatic soft peer reset on policy reconfiguration"; |
| } | | } |
| } | | } |
| container bestpath { | | container bestpath { |
| description | | description |
| "Change default route selection criteria"; | | "Change default route selection criteria"; |
| container as-path { | | container as-path { |
| description | | description |
| "AS path length"; | | "AS path length"; |
| container ignore { | | container ignore { |
| presence "Indicates a ignore node is configured."; | | presence "Indicates a ignore node is configured."; |
| description | | description |
| "Ignore as-path length"; | | "Ignore as-path length"; |
| } | | } |
| container multipath-relax { | | container multipath-relax { |
| presence "Indicates a multipath-relax node is configured."; | | presence "Indicates a multipath-relax node is configured."; |
| description | | description |
| "Relax as-path check for multipath selection"; | | "Relax as-path check for multipath selection"; |
| } | | } |
| } | | } |
| container cost-community { | | container cost-community { |
| description | | description |
| "Cost community"; | | "Cost community"; |
| container ignore { | | container ignore { |
| presence "Indicates a ignore node is configured."; | | presence "Indicates a ignore node is configured."; |
| description | | description |
| "Ignore cost-community comparison"; | | "Ignore cost-community comparison"; |
| } | | } |
| } | | } |
| container compare-routerid { | | container compare-routerid { |
| presence "Indicates a compare-routerid node is configured."; | | presence "Indicates a compare-routerid node is configured."; |
| description | | description |
| "Compare router-id for identical EBGP paths"; | | "Compare router-id for identical EBGP paths"; |
| } | | } |
| container aigp { | | container aigp { |
| description | | description |
| "AIGP attribute"; | | "AIGP attribute"; |
| container ignore { | | container ignore { |
| presence "Indicates a ignore node is configured."; | | presence "Indicates a ignore node is configured."; |
| description | | description |
| "Ignore AIGP attribute"; | | "Ignore AIGP attribute"; |
| } | | } |
| } | | } |
| container igp-metric { | | container igp-metric { |
| description | | description |
| "IGP metric values"; | | "IGP metric values"; |
| container ignore { | | container ignore { |
| presence "Indicates a ignore node is configured."; | | presence "Indicates a ignore node is configured."; |
| description | | description |
| "Ignore IGP metric during path comparison"; | | "Ignore IGP metric during path comparison"; |
| } | | } |
| container sr-policy { | | container sr-policy { |
| presence "Indicates a sr-policy node is configured."; | | presence "Indicates a sr-policy node is configured."; |
| description | | description |
| "Use next-hop admin/metric from SR policy at Next Hop metric comparison stage"; | | "Use next-hop admin/metric from SR policy at Next Hop metric comparison stage"; |
| } | | } |
| } | | } |
| container med { | | container med { |
| description | | description |
| "MED related"; | | "MED related"; |
| container always { | | container always { |
| presence "Indicates a always node is configured."; | | presence "Indicates a always node is configured."; |
| description | | description |
| "Allow comparing MED from different neighbors"; | | "Allow comparing MED from different neighbors"; |
| } | | } |
| container confed { | | container confed { |
| presence "Indicates a confed node is configured."; | | presence "Indicates a confed node is configured."; |
| description | | description |
| "Compare MED among confederation paths"; | | "Compare MED among confederation paths"; |
| } | | } |
| container missing-as-worst { | | container missing-as-worst { |
| presence "Indicates a missing-as-worst node is configured."; | | presence "Indicates a missing-as-worst node is configured."; |
| description | | description |
| "Treat missing MED as the least preferred one"; | | "Treat missing MED as the least preferred one"; |
| } | | } |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container use { | | container use { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validity { | | container validity { |
| presence "Indicates a validity node is configured."; | | presence "Indicates a validity node is configured."; |
| description | | description |
| "BGP bestpath selection will use origin-AS validity"; | | "BGP bestpath selection will use origin-AS validity"; |
| } | | } |
| } | | } |
| container allow { | | container allow { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container invalid { | | container invalid { |
| presence "Indicates a invalid node is configured."; | | presence "Indicates a invalid node is configured."; |
| description | | description |
| "BGP bestpath selection will allow 'invalid' origin-AS"; | | "BGP bestpath selection will allow 'invalid' origin-AS"; |
| } | | } |
| } | | } |
| } | | } |
| container sr-policy { | | container sr-policy { |
| description | | description |
| "Paths over SR-policy"; | | "Paths over SR-policy"; |
| container prefer { | | container prefer { |
| presence "Indicates a prefer node is configured."; | | presence "Indicates a prefer node is configured."; |
| description | | description |
| "Consider only paths over SR Policy for bestpath selection, eBGP no-color eligible"; | | "Consider only paths over SR Policy for bestpath selection, eBGP no-color eligible"; |
| } | | } |
| container force { | | container force { |
| must "not(../prefer)"; | | must "not(../prefer)"; |
| presence "Indicates a force node is configured."; | | presence "Indicates a force node is configured."; |
| description | | description |
| "Consider only paths over SR Policy for bestpath selection, eBGP no-color ineligible"; | | "Consider only paths over SR Policy for bestpath selection, eBGP no-color ineligible"; |
| } | | } |
| } | | } |
| } | | } |
| container cluster-id { | | container cluster-id { |
| description | | description |
| "Configure Route-Reflector Cluster-id"; | | "Configure Route-Reflector Cluster-id"; |
| leaf route-reflector-cluster-id { | | leaf route-reflector-cluster-id { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Route-Reflector Cluster-id as 32 bit quantity"; | | "Route-Reflector Cluster-id as 32 bit quantity"; |
| } | | } |
| } | | } |
| description | | description |
| "Route-Reflector Cluster-id as 32 bit quantity"; | | "Route-Reflector Cluster-id as 32 bit quantity"; |
| } | | } |
| leaf ip-address { | | leaf ip-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "configure this node"; | | "configure this node"; |
| } | | } |
| } | | } |
| container confederation { | | container confederation { |
| description | | description |
| "AS confederation parameters"; | | "AS confederation parameters"; |
| container identifier { | | container identifier { |
| description | | description |
| "Set routing domain confederation AS"; | | "Set routing domain confederation AS"; |
| leaf as { | | leaf as { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| } | | } |
| list peers { | | list peers { |
| key "peer-as-number"; | | key "peer-as-number"; |
| description | | description |
| "Enter peer ASs in BGP confederation mode"; | | "Enter peer ASs in BGP confederation mode"; |
| leaf peer-as-number { | | leaf peer-as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| } | | } |
| } | | } |
| container default { | | container default { |
| description | | description |
| "Configure default value"; | | "Configure default value"; |
| leaf local-preference { | | leaf local-preference { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Higher = more preferred"; | | "Higher = more preferred"; |
| } | | } |
| } | | } |
| description | | description |
| "Local preference"; | | "Local preference"; |
| } | | } |
| } | | } |
| container enforce-first-as { | | container enforce-first-as { |
| description | | description |
| "Enforce the first AS for EBGP routes"; | | "Enforce the first AS for EBGP routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable"; | | "Disable"; |
| } | | } |
| } | | } |
| container fast-external-fallover { | | container fast-external-fallover { |
| description | | description |
| "Immediately reset session if a link to a directly connected external peer goes down"; | | "Immediately reset session if a link to a directly connected external peer goes down"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable"; | | "Disable"; |
| } | | } |
| } | | } |
| container graceful-restart { | | container graceful-restart { |
| presence "Indicates a graceful-restart node is configured."; | | presence "Indicates a graceful-restart node is configured."; |
| description | | description |
| "Enable Graceful Restart support"; | | "Enable Graceful Restart support"; |
| leaf purge-time { | | leaf purge-time { |
| type uint32 { | | type uint32 { |
| range "0..6000" { | | range "0..6000" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Time before stale routes are purged."; | | "Time before stale routes are purged."; |
| } | | } |
| leaf restart-time { | | leaf restart-time { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart time advertised to neighbors"; | | "Restart time advertised to neighbors"; |
| } | | } |
| leaf stalepath-time { | | leaf stalepath-time { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum time to wait for restart of GR capable peers"; | | "Maximum time to wait for restart of GR capable peers"; |
| } | | } |
| container graceful-reset { | | container graceful-reset { |
| presence "Indicates a graceful-reset node is configured."; | | presence "Indicates a graceful-reset node is configured."; |
| description | | description |
| "Reset gracefully if configuration change forces a peer reset"; | | "Reset gracefully if configuration change forces a peer reset"; |
| } | | } |
| container retain-nbr-routes { | | container retain-nbr-routes { |
| description | | description |
| "Retain neighbor routes when neighbor session resets if neighbor also has graceful restart disabled"; | | "Retain neighbor routes when neighbor session resets if neighbor also has graceful restart disabled"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "do not retain neighbor routes"; | | "do not retain neighbor routes"; |
| } | | } |
| } | | } |
| } | | } |
| container read-only { | | container read-only { |
| presence "Indicates a read-only node is configured."; | | presence "Indicates a read-only node is configured."; |
| description | | description |
| "Allow duplicate table config and disable update generation"; | | "Allow duplicate table config and disable update generation"; |
| } | | } |
| container install { | | container install { |
| description | | description |
| "Install diversion path to RIB/CEF"; | | "Install diversion path to RIB/CEF"; |
| container diversion { | | container diversion { |
| presence "Indicates a diversion node is configured."; | | presence "Indicates a diversion node is configured."; |
| description | | description |
| "Install diversion path to RIB/CEF"; | | "Install diversion path to RIB/CEF"; |
| } | | } |
| } | | } |
| container log { | | container log { |
| description | | description |
| "Log bgp info"; | | "Log bgp info"; |
| container neighbor { | | container neighbor { |
| description | | description |
| "Log neighbor state info"; | | "Log neighbor state info"; |
| container changes { | | container changes { |
| description | | description |
| "Log neighbor up/down and reset reason"; | | "Log neighbor up/down and reset reason"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable logging"; | | "Disable logging"; |
| } | | } |
| container detail { | | container detail { |
| presence "Indicates a detail node is configured."; | | presence "Indicates a detail node is configured."; |
| description | | description |
| "Include extra detail in change messages"; | | "Include extra detail in change messages"; |
| } | | } |
| } | | } |
| } | | } |
| container message { | | container message { |
| description | | description |
| "Log neighbor inbound/outbound message"; | | "Log neighbor inbound/outbound message"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable inbound and outbound message logging for all neighbors under the vrf"; | | "Disable inbound and outbound message logging for all neighbors under the vrf"; |
| } | | } |
| } | | } |
| } | | } |
| container multipath { | | container multipath { |
| description | | description |
| "Change multipath selection criteria"; | | "Change multipath selection criteria"; |
| container as-path { | | container as-path { |
| description | | description |
| "AS path"; | | "AS path"; |
| container ignore { | | container ignore { |
| description | | description |
| "Ignore as-path related check for multipath selection"; | | "Ignore as-path related check for multipath selection"; |
| container exact-match { | | container exact-match { |
| presence "Indicates a exact-match node is configured."; | | presence "Indicates a exact-match node is configured."; |
| description | | description |
| "Ignore as-path for multipath selection"; | | "Ignore as-path for multipath selection"; |
| } | | } |
| container onwards { | | container onwards { |
| presence "Indicates a onwards node is configured."; | | presence "Indicates a onwards node is configured."; |
| description | | description |
| "Ignore everything onwards as-path for multipath selection"; | | "Ignore everything onwards as-path for multipath selection"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container redistribute-internal { | | container redistribute-internal { |
| presence "Indicates a redistribute-internal node is configured."; | | presence "Indicates a redistribute-internal node is configured."; |
| description | | description |
| "Allow redistribution of iBGP into IGPs (dangerous)"; | | "Allow redistribution of iBGP into IGPs (dangerous)"; |
| } | | } |
| leaf router-id { | | leaf router-id { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "Configure Router-id"; | | "Configure Router-id"; |
| } | | } |
| container unsafe-ebgp-policy { | | container unsafe-ebgp-policy { |
| presence "Indicates a unsafe-ebgp-policy node is configured."; | | presence "Indicates a unsafe-ebgp-policy node is configured."; |
| description | | description |
| "Make eBGP neighbors with no policy pass all routes"; | | "Make eBGP neighbors with no policy pass all routes"; |
| } | | } |
| container lpts-secure-binding { | | container lpts-secure-binding { |
| presence "Indicates a lpts-secure-binding node is configured."; | | presence "Indicates a lpts-secure-binding node is configured."; |
| description | | description |
| "Enable installation of LPTS secure binding for directly connected eBGP neighbor"; | | "Enable installation of LPTS secure binding for directly connected eBGP neighbor"; |
| } | | } |
| container update-delay { | | container update-delay { |
| presence "Indicates a update-delay node is configured."; | | presence "Indicates a update-delay node is configured."; |
| description | | description |
| "Set the max initial delay for sending updates"; | | "Set the max initial delay for sending updates"; |
| leaf delay { | | leaf delay { |
| type uint32 { | | type uint32 { |
| range "0..3600" { | | range "0..3600" { |
| description | | description |
| "Delay value (seconds)"; | | "Delay value (seconds)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Set the max initial delay for sending updates"; | | "Set the max initial delay for sending updates"; |
| } | | } |
| container always { | | container always { |
| presence "Indicates a always node is configured."; | | presence "Indicates a always node is configured."; |
| description | | description |
| "Keepalive trigger bestpath is disabled and delay is enforced"; | | "Keepalive trigger bestpath is disabled and delay is enforced"; |
| } | | } |
| } | | } |
| leaf scan-time { | | leaf scan-time { |
| type uint32 { | | type uint32 { |
| range "5..3600" { | | range "5..3600" { |
| description | | description |
| "Scanner interval (seconds)"; | | "Scanner interval (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure background scanner interval for generic scanner"; | | "Configure background scanner interval for generic scanner"; |
| } | | } |
| container maximum { | | container maximum { |
| description | | description |
| "Maximum number that can be configured"; | | "Maximum number that can be configured"; |
| leaf neighbor { | | leaf neighbor { |
| type uint32 { | | type uint32 { |
| range "1..15000" { | | range "1..15000" { |
| description | | description |
| "Maximum number of neighbors"; | | "Maximum number of neighbors"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum number of neighbors that can be configured"; | | "Maximum number of neighbors that can be configured"; |
| } | | } |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validation { | | container validation { |
| description | | description |
| "BGP origin-AS validation knobs"; | | "BGP origin-AS validation knobs"; |
| container signal { | | container signal { |
| description | | description |
| "Signal origin-AS validity towards peers"; | | "Signal origin-AS validity towards peers"; |
| container ibgp { | | container ibgp { |
| presence "Indicates a ibgp node is configured."; | | presence "Indicates a ibgp node is configured."; |
| description | | description |
| "Signal origin-AS validity towards iBGP peers"; | | "Signal origin-AS validity towards iBGP peers"; |
| } | | } |
| } | | } |
| container time { | | container time { |
| description | | description |
| "Time to wait between an RPKI update and a BGP table walk"; | | "Time to wait between an RPKI update and a BGP table walk"; |
| container off { | | container off { |
| presence "Indicates a off node is configured."; | | presence "Indicates a off node is configured."; |
| description | | description |
| "No automatic prefix validation after an RPKI update"; | | "No automatic prefix validation after an RPKI update"; |
| } | | } |
| leaf prefix-validation-time { | | leaf prefix-validation-time { |
| type uint32 { | | type uint32 { |
| range "5..60" { | | range "5..60" { |
| description | | description |
| "Prefix validation time (in seconds)"; | | "Prefix validation time (in seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Prefix validation time (in seconds)"; | | "Prefix validation time (in seconds)"; |
| } | | } |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable RPKI origin-AS validation"; | | "Disable RPKI origin-AS validation"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container update { | | container update { |
| description | | description |
| "BGP Update configuration"; | | "BGP Update configuration"; |
| container out { | | container out { |
| description | | description |
| "BGP Update generation configuration"; | | "BGP Update generation configuration"; |
| container logging { | | container logging { |
| presence "Indicates a logging node is configured."; | | presence "Indicates a logging node is configured."; |
| description | | description |
| "Enable logging of update generation events"; | | "Enable logging of update generation events"; |
| } | | } |
| } | | } |
| leaf limit { | | leaf limit { |
| type uint32 { | | type uint32 { |
| range "16..2048" { | | range "16..2048" { |
| description | | description |
| "Update limit in MegaBytes(MB); default is 512 MB"; | | "Update limit in MegaBytes(MB); default is 512 MB"; |
| } | | } |
| } | | } |
| description | | description |
| "Upper bound on transient memory usage for update generation"; | | "Upper bound on transient memory usage for update generation"; |
| } | | } |
| container in { | | container in { |
| description | | description |
| "Inbound update message handling"; | | "Inbound update message handling"; |
| container error-handling { | | container error-handling { |
| description | | description |
| "Inbound update message error handling"; | | "Inbound update message error handling"; |
| container basic { | | container basic { |
| description | | description |
| "Inbound update message basic error handling"; | | "Inbound update message basic error handling"; |
| container ebgp { | | container ebgp { |
| description | | description |
| "Inbound update message basic error handling for EBGP neighbors"; | | "Inbound update message basic error handling for EBGP neighbors"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable inbound update message basic error handling for EBGP neighbors"; | | "Disable inbound update message basic error handling for EBGP neighbors"; |
| } | | } |
| } | | } |
| container ibgp { | | container ibgp { |
| description | | description |
| "Inbound update message basic error handling for IBGP neighbors"; | | "Inbound update message basic error handling for IBGP neighbors"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable inbound update message basic error handling for IBGP neighbors"; | | "Disable inbound update message basic error handling for IBGP neighbors"; |
| } | | } |
| } | | } |
| } | | } |
| container extended { | | container extended { |
| description | | description |
| "Inbound update message extended error handling"; | | "Inbound update message extended error handling"; |
| container ebgp { | | container ebgp { |
| presence "Indicates a ebgp node is configured."; | | presence "Indicates a ebgp node is configured."; |
| description | | description |
| "Inbound update message extended error handling for EBGP neighbors"; | | "Inbound update message extended error handling for EBGP neighbors"; |
| } | | } |
| container ibgp { | | container ibgp { |
| presence "Indicates a ibgp node is configured."; | | presence "Indicates a ibgp node is configured."; |
| description | | description |
| "Inbound update message extended error handling for IBGP neighbors"; | | "Inbound update message extended error handling for IBGP neighbors"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container bfd { | | container bfd { |
| description | | description |
| "Configure BFD parameters"; | | "Configure BFD parameters"; |
| leaf minimum-interval { | | leaf minimum-interval { |
| type uint32 { | | type uint32 { |
| range "3..30000" { | | range "3..30000" { |
| description | | description |
| "hello interval in milli-seconds"; | | "hello interval in milli-seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Hello interval"; | | "Hello interval"; |
| } | | } |
| leaf multiplier { | | leaf multiplier { |
| type uint32 { | | type uint32 { |
| range "2..16" { | | range "2..16" { |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| container as-lists { | | container as-lists { |
| description | | description |
| "List of AS numbers"; | | "List of AS numbers"; |
| list as-list { | | list as-list { |
| key "as-list-name"; | | key "as-list-name"; |
| description | | description |
| "List of AS numbers"; | | "List of AS numbers"; |
| leaf as-list-name { | | leaf as-list-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "as-list name"; | | "as-list name"; |
| } | | } |
| } | | } |
| description | | description |
| "List of AS numbers"; | | "List of AS numbers"; |
| } | | } |
| list as { | | list as { |
| key "as-number"; | | key "as-number"; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container adjacencies { | | container adjacencies { |
| description | | description |
| "Submode to configure adjacencies in an EPE set"; | | "Submode to configure adjacencies in an EPE set"; |
| container ip-addresses { | | container ip-addresses { |
| description | | description |
| "Firsthop address of the adjacency"; | | "Firsthop address of the adjacency"; |
| list ip-address { | | list ip-address { |
| key "address"; | | key "address"; |
| description | | description |
| "Firsthop address of the adjacency"; | | "Firsthop address of the adjacency"; |
| leaf address { | | leaf address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "Firsthop address of the adjacency"; | | "Firsthop address of the adjacency"; |
| } | | } |
| container peer-sets { | | container peer-sets { |
| description | | description |
| "Assign this adjacency to a peer-set used for egress peer engineering"; | | "Assign this adjacency to a peer-set used for egress peer engineering"; |
| list peer-set { | | list peer-set { |
| key "peer-set-id"; | | key "peer-set-id"; |
| description | | description |
| "Assign this adjacency to a peer-set used for egress peer engineering"; | | "Assign this adjacency to a peer-set used for egress peer engineering"; |
| leaf peer-set-id { | | leaf peer-set-id { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Identity value of peer-set"; | | "Identity value of peer-set"; |
| } | | } |
| } | | } |
| description | | description |
| "Assign this adjacency to a peer-set used for egress peer engineering"; | | "Assign this adjacency to a peer-set used for egress peer engineering"; |
| } | | } |
| } | | } |
| } | | } |
| container adjacency-sid { | | container adjacency-sid { |
| description | | description |
| "Configure SID value for this Adjacency EPE object"; | | "Configure SID value for this Adjacency EPE object"; |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..1033575" { | | range "0..1033575" { |
| description | | description |
| "Segment Index to be assigned to this adjacency. The index will be off SRLB | | "Segment Index to be assigned to this adjacency. The index will be off SRLB |
| Notes the maximum index configurable in dynaminc SRLB range. | | Notes the maximum index configurable in dynaminc SRLB range. |
| Sincan be a dynamic range, actual maximum index can vary. | | Sincan be a dynamic range, actual maximum index can vary. |
| So pok at the currently configured SRLB range"; | | So pok at the currently configured SRLB range"; |
| } | | } |
| } | | } |
| description | | description |
| "Segment Index value to assign. This will be off SRLB range"; | | "Segment Index value to assign. This will be off SRLB range"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container segment-routing { | | container segment-routing { |
| description | | description |
| "Enter Segment-Routing Mode"; | | "Enter Segment-Routing Mode"; |
| container srv6 { | | container srv6 { |
| presence "Indicates srv6 node is configured"; | | presence "Indicates srv6 node is configured"; |
| description | | description |
| "Configure srv6"; | | "Configure srv6"; |
| leaf locator { | | leaf locator { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "locator name"; | | "locator name"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure locator name"; | | "Configure locator name"; |
| } | | } |
| container usid { | | container usid { |
| description | | description |
| "Micro-SID configuration"; | | "Micro-SID configuration"; |
| container allocation { | | container allocation { |
| description | | description |
| "Allocation mode"; | | "Allocation mode"; |
| container wide-local-id-block { | | container wide-local-id-block { |
| presence "Indicates a wide-local-id-block node is configured."; | | presence "Indicates a wide-local-id-block node is configured."; |
| description | | description |
| "Wide LIB allocation"; | | "Wide LIB allocation"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container vrfs { | | container vrfs { |
| description | | description |
| "Specify a vrf name"; | | "Specify a vrf name"; |
| list vrf { | | list vrf { |
| key "vrf-name"; | | key "vrf-name"; |
| description | | description |
| "Specify a vrf name"; | | "Specify a vrf name"; |
| leaf vrf-name { | | leaf vrf-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "VRF name - maximum length 32 characters"; | | "VRF name - maximum length 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify a vrf name"; | | "Specify a vrf name"; |
| } | | } |
| container address-families { | | container address-families { |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| list address-family { | | list address-family { |
| key "af-name"; | | key "af-name"; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| leaf af-name { | | leaf af-name { |
| type Bgp-address-family; | | type Bgp-address-family; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| } | | } |
| container distance { | | container distance { |
| description | | description |
| "Define an administrative distance"; | | "Define an administrative distance"; |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "BGP distance"; | | "BGP distance"; |
| leaf external-routes { | | leaf external-routes { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Distance for routes external to the AS"; | | "Distance for routes external to the AS"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "BGP distance"; | | "BGP distance"; |
| } | | } |
| leaf internal-routes { | | leaf internal-routes { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Distance for routes internal to the AS"; | | "Distance for routes internal to the AS"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Distance for routes internal to the AS"; | | "Distance for routes internal to the AS"; |
| } | | } |
| leaf local-routes { | | leaf local-routes { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Distance for local routes"; | | "Distance for local routes"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Distance for local routes"; | | "Distance for local routes"; |
| } | | } |
| } | | } |
| } | | } |
| container allow { | | container allow { |
| description | | description |
| "Allow sending default originate route to VPN neighbor"; | | "Allow sending default originate route to VPN neighbor"; |
| container vpn { | | container vpn { |
| description | | description |
| "Originate default route to VPN neighbor"; | | "Originate default route to VPN neighbor"; |
| container default-originate { | | container default-originate { |
| presence "Indicates a default-originate node is configured."; | | presence "Indicates a default-originate node is configured."; |
| description | | description |
| "Originate default route to VPN neighbor"; | | "Originate default route to VPN neighbor"; |
| } | | } |
| } | | } |
| } | | } |
| container optimal-route-reflection { | | container optimal-route-reflection { |
| when "../af-name != 'ipv4-mvpn' and ../af-name != 'ipv6-mvpn' and ../af-name != 'ipv4-flowspec' and ../af-name != 'ipv6-flowspec' and ../af-name != 'ipv4-sr-policy' and ../af-name != 'ipv6-sr-policy'"; | | when "../af-name != 'ipv4-mvpn' and ../af-name != 'ipv6-mvpn' and ../af-name != 'ipv4-flowspec' and ../af-name != 'ipv6-flowspec' and ../af-name != 'ipv4-sr-policy' and ../af-name != 'ipv6-sr-policy'"; |
| description | | description |
| "Configure optimal-route-reflection group"; | | "Configure optimal-route-reflection group"; |
| list orr-group { | | list orr-group { |
| key "orr-group-name"; | | key "orr-group-name"; |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| leaf orr-group-name { | | leaf orr-group-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| leaf primary-address { | | leaf primary-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| mandatory true; | | mandatory true; |
| description | | description |
| "IPv4 primary address"; | | "IPv4 primary address"; |
| } | | } |
| leaf secondary-address { | | leaf secondary-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IPv4 secondary address"; | | "IPv4 secondary address"; |
| } | | } |
| leaf tertiary-address { | | leaf tertiary-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| must "../secondary-address"; | | must "../secondary-address"; |
| description | | description |
| "IPv4 tertiary address"; | | "IPv4 tertiary address"; |
| } | | } |
| } | | } |
| list apply { | | list apply { |
| key "orr-group-name"; | | key "orr-group-name"; |
| description | | description |
| "Apply optimal-route-reflection group"; | | "Apply optimal-route-reflection group"; |
| leaf orr-group-name { | | leaf orr-group-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| container fallback-default-bestpath { | | container fallback-default-bestpath { |
| presence "Indicates an ebgp node is configured."; | | presence "Indicates an ebgp node is configured."; |
| description | | description |
| "In case none of the paths are accessible in | | "In case none of the paths are accessible in |
| an ORR table, fallback to default table bestpath | | an ORR table, fallback to default table bestpath |
| as ORR bestpath"; | | as ORR bestpath"; |
| } | | } |
| } | | } |
| container maximum-paths { | | container maximum-paths { |
| when "../af-name != 'vpn4-unicast' and ../af-name != 'vpnv4-multicast' and ../af-name != 'vpnv6-unicast' and ../af-name != 'vpnv6-multicast' and ../af-name != 'vpnv4-mdt' and ../af-name != 'l2vpn-vpls-vpws' and ../af-name != 'l2vpn-evpn' and ../af-name != 'l2vpn-mspw' and ../af-name != 'ipv4-mvpn' and ../af-name != 'ipv6-mvpn' and ../af-name != 'ipv4-tunnel' and ../af-name != 'ipv4-rt-filter' and ../af-name != 'link-state-link-state' and ../af-name != 'ipv4-flowspec' and ../af-name != 'ipv6-flowspec' and ../af-name != 'vpnv4-flowspec' and ../af-name != 'vpnv6-flowspec' and ../af-name != 'ipv4-sr-policy' and ../af-name != 'ipv6-sr-policy'"; | | when "../af-name != 'vpn4-unicast' and ../af-name != 'vpnv4-multicast' and ../af-name != 'vpnv6-unicast' and ../af-name != 'vpnv6-multicast' and ../af-name != 'vpnv4-mdt' and ../af-name != 'l2vpn-vpls-vpws' and ../af-name != 'l2vpn-evpn' and ../af-name != 'l2vpn-mspw' and ../af-name != 'ipv4-mvpn' and ../af-name != 'ipv6-mvpn' and ../af-name != 'ipv4-tunnel' and ../af-name != 'ipv4-rt-filter' and ../af-name != 'link-state-link-state' and ../af-name != 'ipv4-flowspec' and ../af-name != 'ipv6-flowspec' and ../af-name != 'vpnv4-flowspec' and ../af-name != 'vpnv6-flowspec' and ../af-name != 'ipv4-sr-policy' and ../af-name != 'ipv6-sr-policy'"; |
| description | | description |
| "Forward packets over multiple paths"; | | "Forward packets over multiple paths"; |
| container ebgp { | | container ebgp { |
| presence "Indicates an ebgp node is configured."; | | presence "Indicates an ebgp node is configured."; |
| description | | description |
| "eBGP-multipath"; | | "eBGP-multipath"; |
| leaf multipath { | | leaf multipath { |
| type uint32 { | | type uint32 { |
| range "2..128" { | | range "2..128" { |
| description | | description |
| "Number of paths (limit includes backup path)"; | | "Number of paths (limit includes backup path)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "eBGP-multipath"; | | "eBGP-multipath"; |
| } | | } |
| container selective { | | container selective { |
| presence "Indicates a selective node is configured."; | | presence "Indicates a selective node is configured."; |
| description | | description |
| "Allow multipaths only from marked neighbors"; | | "Allow multipaths only from marked neighbors"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route-policy to select multipath"; | | "Route-policy to select multipath"; |
| } | | } |
| } | | } |
| container eibgp { | | container eibgp { |
| presence "Indicates an eibgp node is configured."; | | presence "Indicates an eibgp node is configured."; |
| description | | description |
| "eiBGP-multipath"; | | "eiBGP-multipath"; |
| leaf multipath { | | leaf multipath { |
| type uint32 { | | type uint32 { |
| range "2..128" { | | range "2..128" { |
| description | | description |
| "Number of paths (limit includes backup path)"; | | "Number of paths (limit includes backup path)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "eiBGP-multipath"; | | "eiBGP-multipath"; |
| } | | } |
| container selective { | | container selective { |
| presence "Indicates a selective node is configured."; | | presence "Indicates a selective node is configured."; |
| description | | description |
| "Allow multipaths only from marked neighbors"; | | "Allow multipaths only from marked neighbors"; |
| } | | } |
| container equal-cost { | | container equal-cost { |
| presence "Indicates a equal-cost node is configured."; | | presence "Indicates a equal-cost node is configured."; |
| description | | description |
| "Preserve equal nexthop IGP metric criteria for multipath eligiblity between same path-types (iBGP or eBGP)"; | | "Preserve equal nexthop IGP metric criteria for multipath eligiblity between same path-types (iBGP or eBGP)"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route-policy to select multipath"; | | "Route-policy to select multipath"; |
| } | | } |
| } | | } |
| container ibgp { | | container ibgp { |
| presence "Indicates an ibgp node is configured."; | | presence "Indicates an ibgp node is configured."; |
| description | | description |
| "iBGP-multipath"; | | "iBGP-multipath"; |
| leaf multipath { | | leaf multipath { |
| type uint32 { | | type uint32 { |
| range "2..128" { | | range "2..128" { |
| description | | description |
| "Number of paths (limit includes backup path)"; | | "Number of paths (limit includes backup path)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "iBGP-multipath"; | | "iBGP-multipath"; |
| } | | } |
| container selective { | | container selective { |
| presence "Indicates a selective node is configured."; | | presence "Indicates a selective node is configured."; |
| description | | description |
| "Allow multipaths only from marked neighbors"; | | "Allow multipaths only from marked neighbors"; |
| } | | } |
| container unequal-cost { | | container unequal-cost { |
| presence "Indicates an unequal-cost node is configured."; | | presence "Indicates an unequal-cost node is configured."; |
| description | | description |
| "Allow multipaths to have different BGP nexthop IGP metrics "; | | "Allow multipaths to have different BGP nexthop IGP metrics "; |
| container deterministic { | | container deterministic { |
| presence "Indicates a deterministic node is configured."; | | presence "Indicates a deterministic node is configured."; |
| description | | description |
| "Deterministic Multipath selection primarily on IGP metric order"; | | "Deterministic Multipath selection primarily on IGP metric order"; |
| } | | } |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route-policy to select multipath"; | | "Route-policy to select multipath"; |
| } | | } |
| } | | } |
| } | | } |
| container additional-paths { | | container additional-paths { |
| when "../af-name != 'ipv4-multicast' and ../af-name != 'ipv6-multicast' and ../af-name != 'ipv4-mdt' and ../af-name != 'l2vpn-vpls-vpws' and ../af-name != 'ipv4-tunnel'"; | | when "../af-name != 'ipv4-multicast' and ../af-name != 'ipv6-multicast' and ../af-name != 'ipv4-mdt' and ../af-name != 'l2vpn-vpls-vpws' and ../af-name != 'ipv4-tunnel'"; |
| description | | description |
| "Additional paths configuration"; | | "Additional paths configuration"; |
| container send { | | container send { |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Additional paths Send capability"; | | "Additional paths Send capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise additional paths Send capability"; | | "Do not advertise additional paths Send capability"; |
| } | | } |
| } | | } |
| container receive { | | container receive { |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Additional paths Receive capability"; | | "Additional paths Receive capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise additional paths Receive capability"; | | "Do not advertise additional paths Receive capability"; |
| } | | } |
| } | | } |
| container selection { | | container selection { |
| description | | description |
| "Additional paths selection"; | | "Additional paths selection"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable additional paths selection"; | | "Disable additional paths selection"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route-policy for additional paths selection"; | | "Route-policy for additional paths selection"; |
| } | | } |
| } | | } |
| container advertise-limit { | | container advertise-limit { |
| description | | description |
| "Limit the number of paths to be advertised (default 32)"; | | "Limit the number of paths to be advertised (default 32)"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable advertise-limit for this vrf address-family"; | | "Disable advertise-limit for this vrf address-family"; |
| } | | } |
| leaf advertise-path-limit-value { | | leaf advertise-path-limit-value { |
| type uint32 { | | type uint32 { |
| range "33..96" { | | range "33..96" { |
| description | | description |
| "Advertise path limit value"; | | "Advertise path limit value"; |
| } | | } |
| } | | } |
| description | | description |
| "Advertise path limit value"; | | "Advertise path limit value"; |
| } | | } |
| } | | } |
| } | | } |
| container route-target { | | container route-target { |
| description | | description |
| "Route target RIB installation"; | | "Route target RIB installation"; |
| container download { | | container download { |
| presence "Indicates a download node is configured."; | | presence "Indicates a download node is configured."; |
| description | | description |
| "Install route-targets in RIB"; | | "Install route-targets in RIB"; |
| } | | } |
| } | | } |
| container enable { | | container enable { |
| description | | description |
| "Enable commands for address-family"; | | "Enable commands for address-family"; |
| container label-mode { | | container label-mode { |
| presence "Indicates a label-mode node is configured."; | | presence "Indicates a label-mode node is configured."; |
| description | | description |
| "enable label allocation for address-family. | | "enable label allocation for address-family. |
| Use only if dual mode srv6 and mpls is needed. | | Use only if dual mode srv6 and mpls is needed. |
| This will result in allocation of both, | | This will result in allocation of both, |
| label and sid for prefixes in the vrf."; | | label and sid for prefixes in the vrf."; |
| } | | } |
| } | | } |
| container advertise { | | container advertise { |
| description | | description |
| "Advertise BGP path"; | | "Advertise BGP path"; |
| container best-external { | | container best-external { |
| presence "Indicates a best-external node is configured."; | | presence "Indicates a best-external node is configured."; |
| description | | description |
| "Advertise best-external path"; | | "Advertise best-external path"; |
| container labeled-unicast { | | container labeled-unicast { |
| must "not(../disable)"; | | must "not(../disable)"; |
| presence "Indicates a labeled-unicast node is configured."; | | presence "Indicates a labeled-unicast node is configured."; |
| description | | description |
| "Limit best-external to Labeled-Unicast address family"; | | "Limit best-external to Labeled-Unicast address family"; |
| } | | } |
| container disable { | | container disable { |
| must "not(../labeled-unicast)"; | | must "not(../labeled-unicast)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise best-external path"; | | "Do not advertise best-external path"; |
| } | | } |
| } | | } |
| container local-labeled-route { | | container local-labeled-route { |
| when "../../af-name = 'ipv4-unicast' or ../../af-name = 'ipv6-unicast'"; | | when "../../af-name = 'ipv4-unicast' or ../../af-name = 'ipv6-unicast'"; |
| description | | description |
| "Advertisement of routes with local-label"; | | "Advertisement of routes with local-label"; |
| container safi-unicast { | | container safi-unicast { |
| presence "Indicates a safi-unicast node is configured."; | | presence "Indicates a safi-unicast node is configured."; |
| description | | description |
| "Advertisement of routes with local-label via Unicast SAFI"; | | "Advertisement of routes with local-label via Unicast SAFI"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise routes with local-label via Unicast SAFI"; | | "Do not advertise routes with local-label via Unicast SAFI"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container nexthop { | | container nexthop { |
| description | | description |
| "Nexthop"; | | "Nexthop"; |
| container resolution { | | container resolution { |
| description | | description |
| "Nexthop resolution"; | | "Nexthop resolution"; |
| container prefix-length { | | container prefix-length { |
| description | | description |
| "Nexthop resolution prefix-length"; | | "Nexthop resolution prefix-length"; |
| leaf minimum { | | leaf minimum { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0..32" { | | range "0..32" { |
| description | | description |
| "Prefix-length value"; | | "Prefix-length value"; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "0..128" { | | range "0..128" { |
| description | | description |
| "Prefix-length value"; | | "Prefix-length value"; |
| } | | } |
| } | | } |
| } | | } |
| description | | description |
| "Set minimum prefix-length for nexthop resolution"; | | "Set minimum prefix-length for nexthop resolution"; |
| } | | } |
| leaf minimum-ipv6 { | | leaf minimum-ipv6 { |
| type uint32 { | | type uint32 { |
| range "0..128" { | | range "0..128" { |
| description | | description |
| "IPv6 Prefix-length value"; | | "IPv6 Prefix-length value"; |
| } | | } |
| } | | } |
| description | | description |
| "IPv6 Prefix-length value"; | | "IPv6 Prefix-length value"; |
| } | | } |
| } | | } |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Policy to filter out nexthop notification"; | | "Policy to filter out nexthop notification"; |
| } | | } |
| } | | } |
| container networks { | | container networks { |
| description | | description |
| "Specify a network to announce via BGP"; | | "Specify a network to announce via BGP"; |
| list network { | | list network { |
| key "address masklength"; | | key "address masklength"; |
| description | | description |
| "IPv6 network and mask or masklength"; | | "IPv6 network and mask or masklength"; |
| leaf address { | | leaf address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IPv6 network and mask or masklength"; | | "IPv6 network and mask or masklength"; |
| } | | } |
| leaf masklength { | | leaf masklength { |
| type uint16 { | | type uint16 { |
| range "0..128"; | | range "0..128"; |
| } | | } |
| description | | description |
| "Network in prefix/length format (prefix part)"; | | "Network in prefix/length format (prefix part)"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route-policy to modify the attributes"; | | "Route-policy to modify the attributes"; |
| } | | } |
| container backdoor { | | container backdoor { |
| presence "Indicates a backdoor node is configured."; | | presence "Indicates a backdoor node is configured."; |
| description | | description |
| "Specify a BGP backdoor route"; | | "Specify a BGP backdoor route"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a backdoor node is configured."; | | presence "Indicates a backdoor node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| } | | } |
| container aggregate-addresses { | | container aggregate-addresses { |
| description | | description |
| "Configure BGP aggregate entries"; | | "Configure BGP aggregate entries"; |
| list aggregate-address { | | list aggregate-address { |
| key "address masklength"; | | key "address masklength"; |
| description | | description |
| "IPv6 Aggregate address and mask or masklength"; | | "IPv6 Aggregate address and mask or masklength"; |
| leaf address { | | leaf address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IPv6 Aggregate address and mask or masklength"; | | "IPv6 Aggregate address and mask or masklength"; |
| } | | } |
| leaf masklength { | | leaf masklength { |
| type uint16 { | | type uint16 { |
| range "0..128"; | | range "0..128"; |
| } | | } |
| description | | description |
| "Network in prefix/length format (prefix part)"; | | "Network in prefix/length format (prefix part)"; |
| } | | } |
| container as-set { | | container as-set { |
| presence "Indicates a as-set node is configured."; | | presence "Indicates a as-set node is configured."; |
| description | | description |
| "Generate AS set path information"; | | "Generate AS set path information"; |
| } | | } |
| container as-confed-set { | | container as-confed-set { |
| presence "Indicates a as-confed-set node is configured."; | | presence "Indicates a as-confed-set node is configured."; |
| description | | description |
| "Generate AS confed set path information"; | | "Generate AS confed set path information"; |
| } | | } |
| container summary-only { | | container summary-only { |
| presence "Indicates a summary-only node is configured."; | | presence "Indicates a summary-only node is configured."; |
| description | | description |
| "Filter more specific routes from updates"; | | "Filter more specific routes from updates"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Policy to condition advertisement, suppression, and attributes"; | | "Policy to condition advertisement, suppression, and attributes"; |
| } | | } |
| } | | } |
| } | | } |
| container redistribute { | | container redistribute { |
| when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv6-multicast'"; | | when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv6-multicast'"; |
| description | | description |
| "Redistribute information from another routing protocol"; | | "Redistribute information from another routing protocol"; |
| list ospf { | | list ospf { |
| key "router-tag"; | | key "router-tag"; |
| description | | description |
| "Open Shortest Path First (OSPF/OSPFv3)"; | | "Open Shortest Path First (OSPF/OSPFv3)"; |
| leaf router-tag { | | leaf router-tag { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "OSPF router tag"; | | "OSPF router tag"; |
| } | | } |
| } | | } |
| description | | description |
| "Open Shortest Path First (OSPF)"; | | "Open Shortest Path First (OSPF)"; |
| } | | } |
| container match { | | container match { |
| presence "Indicates a match node is configured."; | | presence "Indicates a match node is configured."; |
| description | | description |
| "Redistribution of OSPF routes"; | | "Redistribution of OSPF routes"; |
| container internal { | | container internal { |
| presence "Indicates a internal node is configured."; | | presence "Indicates a internal node is configured."; |
| description | | description |
| "Redistribute OSPF internal routes"; | | "Redistribute OSPF internal routes"; |
| container external { | | container external { |
| presence "Indicates a external node is configured."; | | presence "Indicates a external node is configured."; |
| description | | description |
| "Redistribute OSPF external routes"; | | "Redistribute OSPF external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute external type 1 routes"; | | "Redistribute external type 1 routes"; |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute external type 2 routes"; | | "Redistribute external type 2 routes"; |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container external { | | container external { |
| presence "Indicates a external node is configured."; | | presence "Indicates a external node is configured."; |
| description | | description |
| "Redistribute OSPF external routes"; | | "Redistribute OSPF external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute external type 1 routes"; | | "Redistribute external type 1 routes"; |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute external type 2 routes"; | | "Redistribute external type 2 routes"; |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container nssa-external { | | container nssa-external { |
| presence "Indicates a nssa-external node is configured."; | | presence "Indicates a nssa-external node is configured."; |
| description | | description |
| "Redistribute OSPF NSSA external routes"; | | "Redistribute OSPF NSSA external routes"; |
| container one { | | container one { |
| presence "Indicates a one node is configured."; | | presence "Indicates a one node is configured."; |
| description | | description |
| "Redistribute NSSA external type 1 routes"; | | "Redistribute NSSA external type 1 routes"; |
| } | | } |
| container two { | | container two { |
| presence "Indicates a two node is configured."; | | presence "Indicates a two node is configured."; |
| description | | description |
| "Redistribute NSSA external type 2 routes"; | | "Redistribute NSSA external type 2 routes"; |
| } | | } |
| } | | } |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| } | | } |
| list eigrp { | | list eigrp { |
| key "instance-name"; | | key "instance-name"; |
| description | | description |
| "Enhanced Interior Gateway Routing Protocol (EIGRP)"; | | "Enhanced Interior Gateway Routing Protocol (EIGRP)"; |
| leaf instance-name { | | leaf instance-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "EIGRP instance name"; | | "EIGRP instance name"; |
| } | | } |
| } | | } |
| description | | description |
| "Enhanced Interior Gateway Routing Protocol (EIGRP)"; | | "Enhanced Interior Gateway Routing Protocol (EIGRP)"; |
| } | | } |
| container match { | | container match { |
| description | | description |
| "EIGRP route type for redistribution"; | | "EIGRP route type for redistribution"; |
| container internal { | | container internal { |
| presence "Indicates a internal node is configured."; | | presence "Indicates a internal node is configured."; |
| description | | description |
| "Redistribute EIGRP internal routes"; | | "Redistribute EIGRP internal routes"; |
| container external { | | container external { |
| presence "Indicates a external node is configured."; | | presence "Indicates a external node is configured."; |
| description | | description |
| "Redistribute EIGRP external routes"; | | "Redistribute EIGRP external routes"; |
| } | | } |
| } | | } |
| container external { | | container external { |
| presence "Indicates a external node is configured."; | | presence "Indicates a external node is configured."; |
| description | | description |
| "Redistribute EIGRP external routes"; | | "Redistribute EIGRP external routes"; |
| } | | } |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| } | | } |
| list application { | | list application { |
| key "application-name"; | | key "application-name"; |
| description | | description |
| "OnePK application routes"; | | "OnePK application routes"; |
| leaf application-name { | | leaf application-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "OnePK application name"; | | "OnePK application name"; |
| } | | } |
| } | | } |
| description | | description |
| "OnePK application name"; | | "OnePK application name"; |
| } | | } |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| container connected { | | container connected { |
| presence "Indicates a connected node is configured."; | | presence "Indicates a connected node is configured."; |
| description | | description |
| "Connected routes"; | | "Connected routes"; |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| container lisp { | | container lisp { |
| presence "Indicates a lisp node is configured."; | | presence "Indicates a lisp node is configured."; |
| description | | description |
| "Locator/ID Separation Protocol (LISP)"; | | "Locator/ID Separation Protocol (LISP)"; |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| container mobile { | | container mobile { |
| presence "Indicates a mobile node is configured."; | | presence "Indicates a mobile node is configured."; |
| description | | description |
| "Mobile routes"; | | "Mobile routes"; |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| container rip { | | container rip { |
| when "../../af-name = 'ipv4-unicast' or ../../af-name = 'ipv4-multicast'"; | | when "../../af-name = 'ipv4-unicast' or ../../af-name = 'ipv4-multicast'"; |
| presence "Indicates a rip node is configured."; | | presence "Indicates a rip node is configured."; |
| description | | description |
| "Routing Information Protocol (RIP)"; | | "Routing Information Protocol (RIP)"; |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| container static { | | container static { |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Static routes"; | | "Static routes"; |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| container subscriber { | | container subscriber { |
| presence "Indicates a lisp node is configured."; | | presence "Indicates a lisp node is configured."; |
| description | | description |
| "subscriber routes"; | | "subscriber routes"; |
| leaf metric { | | leaf metric { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "Metric for redistributed routes"; | | "Metric for redistributed routes"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy reference"; | | "Route policy reference"; |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Enable installation of multiple paths from RIB"; | | "Enable installation of multiple paths from RIB"; |
| } | | } |
| } | | } |
| } | | } |
| leaf table-policy { | | leaf table-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Configure policy for installation of routes to RIB"; | | "Configure policy for installation of routes to RIB"; |
| } | | } |
| container allocate-label { | | container allocate-label { |
| description | | description |
| "Allocate label for selected prefixes"; | | "Allocate label for selected prefixes"; |
| container all { | | container all { |
| presence "Indicates a all node is configured."; | | presence "Indicates a all node is configured."; |
| description | | description |
| "Allocate labels for all prefixes"; | | "Allocate labels for all prefixes"; |
| container unlabeled-path { | | container unlabeled-path { |
| presence "Indicates a unlabeled-path node is configured."; | | presence "Indicates a unlabeled-path node is configured."; |
| description | | description |
| "Allocate label for unlabeled paths too"; | | "Allocate label for unlabeled paths too"; |
| } | | } |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Use a route policy to select prefixes for label allocation"; | | "Use a route policy to select prefixes for label allocation"; |
| } | | } |
| } | | } |
| container label { | | container label { |
| description | | description |
| "Label-related configuration"; | | "Label-related configuration"; |
| container mode { | | container mode { |
| description | | description |
| "Select label mode"; | | "Select label mode"; |
| container per-prefix { | | container per-prefix { |
| when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; | | when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; |
| must "not(../per-ce or ../per-vrf or ../route-policy or ../per-vrf-46)"; | | must "not(../per-ce or ../per-vrf or ../route-policy or ../per-vrf-46)"; |
| presence "Indicates a per-prefix node is configured."; | | presence "Indicates a per-prefix node is configured."; |
| description | | description |
| "Set per perfix label mode"; | | "Set per perfix label mode"; |
| } | | } |
| container per-ce { | | container per-ce { |
| when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; | | when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; |
| must "not(../per-prefix or ../per-vrf or ../route-policy or ../per-vrf-46)"; | | must "not(../per-prefix or ../per-vrf or ../route-policy or ../per-vrf-46)"; |
| presence "Indicates a per-ce node is configured."; | | presence "Indicates a per-ce node is configured."; |
| description | | description |
| "Set per CE label mode"; | | "Set per CE label mode"; |
| } | | } |
| container per-vrf { | | container per-vrf { |
| when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; | | when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; |
| must "not(../per-prefix or ../per-ce or ../route-policy or ../per-vrf-46)"; | | must "not(../per-prefix or ../per-ce or ../route-policy or ../per-vrf-46)"; |
| presence "Indicates a per-vrf node is configured."; | | presence "Indicates a per-vrf node is configured."; |
| description | | description |
| "Set per VRF label mode"; | | "Set per VRF label mode"; |
| } | | } |
| container per-vrf-46 { | | container per-vrf-46 { |
| when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; | | when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; |
| must "not(../per-prefix or ../per-ce or ../route-policy or ../per-vrf)"; | | must "not(../per-prefix or ../per-ce or ../route-policy or ../per-vrf)"; |
| presence "Indicates a per-vrf-46 node is configured."; | | presence "Indicates a per-vrf-46 node is configured."; |
| description | | description |
| "Set per VRF IPv4/IPv6 label mode"; | | "Set per VRF IPv4/IPv6 label mode"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; | | when "../../../af-name = 'ipv4-unicast' or ../../../af-name = 'ipv6-unicast'"; |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| must "not(../per-prefix or ../per-ce or ../per-vrf or ../per-vrf-46)"; | | must "not(../per-prefix or ../per-ce or ../per-vrf or ../per-vrf-46)"; |
| description | | description |
| "Use a route policy to select prefixes for label allocation mode"; | | "Use a route policy to select prefixes for label allocation mode"; |
| } | | } |
| } | | } |
| } | | } |
| container bgp { | | container bgp { |
| description | | description |
| "BGP Commands"; | | "BGP Commands"; |
| container dampening { | | container dampening { |
| presence "Indicates a dampening node is configured."; | | presence "Indicates a dampening node is configured."; |
| description | | description |
| "Enable route-flap dampening"; | | "Enable route-flap dampening"; |
| leaf half-life-time { | | leaf half-life-time { |
| type uint32 { | | type uint32 { |
| range "1..45" { | | range "1..45" { |
| description | | description |
| "Half-life time for the penalty"; | | "Half-life time for the penalty"; |
| } | | } |
| } | | } |
| must "not(../route-policy)"; | | must "not(../route-policy)"; |
| description | | description |
| "Half-life time for the penalty"; | | "Half-life time for the penalty"; |
| } | | } |
| leaf start-reusing-route { | | leaf start-reusing-route { |
| type uint32 { | | type uint32 { |
| range "1..20000" { | | range "1..20000" { |
| description | | description |
| "Value to start reusing a route"; | | "Value to start reusing a route"; |
| } | | } |
| } | | } |
| must "../half-life-time and ../start-suppressing-route"; | | must "../half-life-time and ../start-suppressing-route"; |
| description | | description |
| "Value to start reusing a route"; | | "Value to start reusing a route"; |
| } | | } |
| leaf start-suppressing-route { | | leaf start-suppressing-route { |
| type uint32 { | | type uint32 { |
| range "1..20000" { | | range "1..20000" { |
| description | | description |
| "Value to start suppressing a route"; | | "Value to start suppressing a route"; |
| } | | } |
| } | | } |
| must "../start-reusing-route and ../maximum-duration"; | | must "../start-reusing-route and ../maximum-duration"; |
| description | | description |
| "Value to start suppressing a route"; | | "Value to start suppressing a route"; |
| } | | } |
| leaf maximum-duration { | | leaf maximum-duration { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Maximum duration to suppress a stable route"; | | "Maximum duration to suppress a stable route"; |
| } | | } |
| } | | } |
| must "../start-suppressing-route"; | | must "../start-suppressing-route"; |
| description | | description |
| "Maximum duration to suppress a stable route"; | | "Maximum duration to suppress a stable route"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| must "not(../half-life-time)"; | | must "not(../half-life-time)"; |
| description | | description |
| "Route policy to specify criteria for dampening"; | | "Route policy to specify criteria for dampening"; |
| } | | } |
| } | | } |
| container attribute-download { | | container attribute-download { |
| presence "Indicates a attribute-download node is configured."; | | presence "Indicates a attribute-download node is configured."; |
| description | | description |
| "Configure attribute download for this address-family"; | | "Configure attribute download for this address-family"; |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validation { | | container validation { |
| description | | description |
| "BGP origin-AS validation knobs"; | | "BGP origin-AS validation knobs"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable RPKI origin-AS validation"; | | "Disable RPKI origin-AS validation"; |
| } | | } |
| container enable { | | container enable { |
| presence "Indicates a enable node is configured."; | | presence "Indicates a enable node is configured."; |
| description | | description |
| "Enable RPKI origin-AS validation"; | | "Enable RPKI origin-AS validation"; |
| } | | } |
| container signal { | | container signal { |
| description | | description |
| "Signal origin-AS validity towards peers"; | | "Signal origin-AS validity towards peers"; |
| container ibgp { | | container ibgp { |
| presence "Indicates a ibgp node is configured."; | | presence "Indicates a ibgp node is configured."; |
| description | | description |
| "Signal origin-AS validity towards iBGP peers"; | | "Signal origin-AS validity towards iBGP peers"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container bestpath { | | container bestpath { |
| description | | description |
| "Change default route selection criteria"; | | "Change default route selection criteria"; |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container use { | | container use { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validity { | | container validity { |
| presence "Indicates a validity node is configured."; | | presence "Indicates a validity node is configured."; |
| description | | description |
| "BGP bestpath selection will use origin-AS validity"; | | "BGP bestpath selection will use origin-AS validity"; |
| } | | } |
| } | | } |
| container allow { | | container allow { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container invalid { | | container invalid { |
| presence "Indicates a invalid node is configured."; | | presence "Indicates a invalid node is configured."; |
| description | | description |
| "BGP bestpath selection will allow 'invalid' origin-AS"; | | "BGP bestpath selection will allow 'invalid' origin-AS"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container event { | | container event { |
| description | | description |
| "Policy for per-prefix tracing"; | | "Policy for per-prefix tracing"; |
| container prefix { | | container prefix { |
| description | | description |
| "Policy for per-prefix tracing"; | | "Policy for per-prefix tracing"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Policy for per-prefix tracing"; | | "Policy for per-prefix tracing"; |
| } | | } |
| } | | } |
| } | | } |
| container dynamic-med { | | container dynamic-med { |
| description | | description |
| "Dynamic MED Interval"; | | "Dynamic MED Interval"; |
| leaf interval { | | leaf interval { |
| type uint32 { | | type uint32 { |
| range "0..10" { | | range "0..10" { |
| description | | description |
| "Update generation delay in minutes"; | | "Update generation delay in minutes"; |
| } | | } |
| } | | } |
| description | | description |
| "Update generation delay (in minutes) after a MED change"; | | "Update generation delay (in minutes) after a MED change"; |
| } | | } |
| } | | } |
| container weight { | | container weight { |
| description | | description |
| "Define or modify weight"; | | "Define or modify weight"; |
| container reset-on-import { | | container reset-on-import { |
| presence "Indicates a reset-on-import node is configured."; | | presence "Indicates a reset-on-import node is configured."; |
| description | | description |
| "Reset weight of paths on import"; | | "Reset weight of paths on import"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not reset weight of paths on import"; | | "Do not reset weight of paths on import"; |
| } | | } |
| } | | } |
| } | | } |
| container as-path-loopcheck { | | container as-path-loopcheck { |
| description | | description |
| "Configure AS Path loop checking"; | | "Configure AS Path loop checking"; |
| container out { | | container out { |
| description | | description |
| "For outbound updates"; | | "For outbound updates"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable"; | | "Disable"; |
| } | | } |
| } | | } |
| } | | } |
| container global-table-multicast { | | container global-table-multicast { |
| presence "Indicates a global-table-multicast node is configured."; | | presence "Indicates a global-table-multicast node is configured."; |
| description | | description |
| "Enable global table multicast"; | | "Enable global table multicast"; |
| } | | } |
| container segmented-multicast { | | container segmented-multicast { |
| presence "Indicates a segmented-multicast node is configured."; | | presence "Indicates a segmented-multicast node is configured."; |
| description | | description |
| "Enable segmented multicast"; | | "Enable segmented multicast"; |
| } | | } |
| container label-security { | | container label-security { |
| description | | description |
| "BGP Label Security"; | | "BGP Label Security"; |
| container asbr { | | container asbr { |
| description | | description |
| "Label Security for ASBR peers"; | | "Label Security for ASBR peers"; |
| container rpf { | | container rpf { |
| presence "Indicates a rpf node is configured."; | | presence "Indicates a rpf node is configured."; |
| description | | description |
| "RPF Label Security for Option-B"; | | "RPF Label Security for Option-B"; |
| } | | } |
| } | | } |
| } | | } |
| container segment-routing { | | container segment-routing { |
| when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast'"; | | when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast'"; |
| description | | description |
| "Segment Routing"; | | "Segment Routing"; |
| container srv6 { | | container srv6 { |
| presence "Indicates a srv6 node is configured."; | | presence "Indicates a srv6 node is configured."; |
| description | | description |
| "Specify SRv6 configurations"; | | "Specify SRv6 configurations"; |
| container alloc { | | container alloc { |
| description | | description |
| "SID Allocation"; | | "SID Allocation"; |
| container mode { | | container mode { |
| description | | description |
| "SID Allocation mode"; | | "SID Allocation mode"; |
| container per-ce { | | container per-ce { |
| must "not(../per-vrf or ../route-policy or ../per-vrf-46)"; | | must "not(../per-vrf or ../route-policy or ../per-vrf-46)"; |
| presence "Indicates a per-ce node is configured."; | | presence "Indicates a per-ce node is configured."; |
| description | | description |
| "Set per CE SRv6 SID mode"; | | "Set per CE SRv6 SID mode"; |
| } | | } |
| container per-vrf { | | container per-vrf { |
| must "not(../per-ce or ../route-policy or ../per-vrf-46)"; | | must "not(../per-ce or ../route-policy or ../per-vrf-46)"; |
| presence "Indicates a per-vrf node is configured."; | | presence "Indicates a per-vrf node is configured."; |
| description | | description |
| "Set per VRF SRv6 SID mode"; | | "Set per VRF SRv6 SID mode"; |
| } | | } |
| container per-vrf-46 { | | container per-vrf-46 { |
| must "not(../per-ce or ../route-policy or ../per-vrf)"; | | must "not(../per-ce or ../route-policy or ../per-vrf)"; |
| presence "Indicates a per-vrf-46 node is configured."; | | presence "Indicates a per-vrf-46 node is configured."; |
| description | | description |
| "Set per VRF 46 SRv6 SID mode"; | | "Set per VRF 46 SRv6 SID mode"; |
| } | | } |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| must "not(../per-ce or ../per-vrf or ../per-vrf-46)"; | | must "not(../per-ce or ../per-vrf or ../per-vrf-46)"; |
| description | | description |
| "Use a route policy to determine the SID allocation mode and locator (if provided) for given prefix"; | | "Use a route policy to determine the SID allocation mode and locator (if provided) for given prefix"; |
| } | | } |
| } | | } |
| } | | } |
| leaf locator { | | leaf locator { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "locator name"; | | "locator name"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify locator"; | | "Specify locator"; |
| } | | } |
| container usid { | | container usid { |
| description | | description |
| "Micro-SID configuration"; | | "Micro-SID configuration"; |
| container allocation { | | container allocation { |
| description | | description |
| "Allocation mode"; | | "Allocation mode"; |
| container wide-local-id-block { | | container wide-local-id-block { |
| presence "Indicates a wide-local-id-block node is configured."; | | presence "Indicates a wide-local-id-block node is configured."; |
| description | | description |
| "Wide LIB allocation"; | | "Wide LIB allocation"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container neighbors { | | container neighbors { |
| description | | description |
| "Specify a neighbor router"; | | "Specify a neighbor router"; |
| list neighbor { | | list neighbor { |
| key "neighbor-address"; | | key "neighbor-address"; |
| description | | description |
| "Neighbor address"; | | "Neighbor address"; |
| leaf neighbor-address { | | leaf neighbor-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "Neighbor address"; | | "Neighbor address"; |
| } | | } |
| container address-families { | | container address-families { |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| list address-family { | | list address-family { |
| key "af-name"; | | key "af-name"; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| leaf af-name { | | leaf af-name { |
| type Bgp-address-family; | | type Bgp-address-family; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| } | | } |
| container use { | | container use { |
| description | | description |
| "Inherit configuration for this address-family from a group"; | | "Inherit configuration for this address-family from a group"; |
| leaf af-group { | | leaf af-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "AF group name"; | | "AF group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit configuration for this address-family from an af-group"; | | "Inherit configuration for this address-family from an af-group"; |
| } | | } |
| } | | } |
| container capability { | | container capability { |
| description | | description |
| "Advertise capability to the peer"; | | "Advertise capability to the peer"; |
| container orf { | | container orf { |
| description | | description |
| "Advertise ORF capability to the peer"; | | "Advertise ORF capability to the peer"; |
| container prefix { | | container prefix { |
| description | | description |
| "Advertise address prefix ORF capability to this neighbor"; | | "Advertise address prefix ORF capability to this neighbor"; |
| container receive { | | container receive { |
| must "not(../send or ../both or ../none)"; | | must "not(../send or ../both or ../none)"; |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Capability to RECEIVE the ORF from this neighbor"; | | "Capability to RECEIVE the ORF from this neighbor"; |
| } | | } |
| container send { | | container send { |
| must "not(../receive or ../both or ../none)"; | | must "not(../receive or ../both or ../none)"; |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Capability to SEND the ORF to this neighbor"; | | "Capability to SEND the ORF to this neighbor"; |
| } | | } |
| container both { | | container both { |
| must "not(../receive or ../send or ../none)"; | | must "not(../receive or ../send or ../none)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Capability to RECEIVE and SEND the ORF from/to this neighbor"; | | "Capability to RECEIVE and SEND the ORF from/to this neighbor"; |
| } | | } |
| container none { | | container none { |
| must "not(../receive or ../send or ../both)"; | | must "not(../receive or ../send or ../both)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No capability to RECEIVE or SEND the ORF from/to this neighbor"; | | "No capability to RECEIVE or SEND the ORF from/to this neighbor"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container default-originate { | | container default-originate { |
| presence "Indicates a default-originate node is configured."; | | presence "Indicates a default-originate node is configured."; |
| description | | description |
| "Originate default route to this neighbor"; | | "Originate default route to this neighbor"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy to specify criteria to originate default"; | | "Route policy to specify criteria to originate default"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../route-policy)"; | | must "not(../route-policy)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent default-originate being inherited from a parent group"; | | "Prevent default-originate being inherited from a parent group"; |
| } | | } |
| } | | } |
| container maximum-prefix { | | container maximum-prefix { |
| presence "Indicates a maximum-prefix node is configured."; | | presence "Indicates a maximum-prefix node is configured."; |
| description | | description |
| "Maximum number of prefixes to accept from this peer"; | | "Maximum number of prefixes to accept from this peer"; |
| leaf prefix-limit { | | leaf prefix-limit { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "maximum no. of prefix limit"; | | "maximum no. of prefix limit"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Maximum number of prefixes to accept from this peer"; | | "Maximum number of prefixes to accept from this peer"; |
| } | | } |
| leaf threshold { | | leaf threshold { |
| type uint32 { | | type uint32 { |
| range "1..100" { | | range "1..100" { |
| description | | description |
| "Threshold value (%) at which to generate a warning msg"; | | "Threshold value (%) at which to generate a warning msg"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Threshold value (%) at which to generate a warning msg"; | | "Threshold value (%) at which to generate a warning msg"; |
| } | | } |
| container warning-only { | | container warning-only { |
| presence "Indicates a warning-only node is configured."; | | presence "Indicates a warning-only node is configured."; |
| description | | description |
| "Only give warning message when limit is exceeded"; | | "Only give warning message when limit is exceeded"; |
| } | | } |
| leaf restart { | | leaf restart { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Time interval (min) after which peering session will be reestablished"; | | "Time interval (min) after which peering session will be reestablished"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart time interval"; | | "Restart time interval"; |
| } | | } |
| container discard-extra-paths { | | container discard-extra-paths { |
| presence "Indicates a discard-extra-paths node is configured."; | | presence "Indicates a discard-extra-paths node is configured."; |
| description | | description |
| "Discard extra paths when limit is exceeded"; | | "Discard extra paths when limit is exceeded"; |
| } | | } |
| } | | } |
| leaf optimal-route-reflection { | | leaf optimal-route-reflection { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure optiomal-route-reflection for this neighbor"; | | "Configure optiomal-route-reflection for this neighbor"; |
| } | | } |
| container next-hop-self { | | container next-hop-self { |
| presence "Indicates a next-hop-self node is configured."; | | presence "Indicates a next-hop-self node is configured."; |
| description | | description |
| "Disable the next hop calculation for this neighbor"; | | "Disable the next hop calculation for this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent next-hop-self from being inherited from the parent"; | | "Prevent next-hop-self from being inherited from the parent"; |
| } | | } |
| } | | } |
| container next-hop-unchanged { | | container next-hop-unchanged { |
| presence "Indicates a next-hop-unchanged node is configured."; | | presence "Indicates a next-hop-unchanged node is configured."; |
| description | | description |
| "Do not overwrite next hop before advertising to eBGP peers"; | | "Do not overwrite next hop before advertising to eBGP peers"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent next-hop-unchanged from being inherited from the parent"; | | "Prevent next-hop-unchanged from being inherited from the parent"; |
| } | | } |
| } | | } |
| container slow-peer { | | container slow-peer { |
| description | | description |
| "Configure this neighbor as slow-peer"; | | "Configure this neighbor as slow-peer"; |
| container static { | | container static { |
| must "not(../dynamic)"; | | must "not(../dynamic)"; |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Configure this neighbor as static slow-peer"; | | "Configure this neighbor as static slow-peer"; |
| } | | } |
| container dynamic { | | container dynamic { |
| must "not(../static)"; | | must "not(../static)"; |
| presence "Indicates a dynamic node is configured."; | | presence "Indicates a dynamic node is configured."; |
| description | | description |
| "Configure this neighbor as dynamic slow-peer"; | | "Configure this neighbor as dynamic slow-peer"; |
| leaf threshold { | | leaf threshold { |
| type uint16 { | | type uint16 { |
| range "120..3600" { | | range "120..3600" { |
| description | | description |
| "Threshold (in seconds) to detect this neighbor as slow-peer"; | | "Threshold (in seconds) to detect this neighbor as slow-peer"; |
| } | | } |
| } | | } |
| description | | description |
| "Threshold (in seconds) to detect this neighbor as slow-peer"; | | "Threshold (in seconds) to detect this neighbor as slow-peer"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable dynamic slow-peer"; | | "Disable dynamic slow-peer"; |
| } | | } |
| } | | } |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validation { | | container validation { |
| description | | description |
| "BGP origin-AS validation knobs"; | | "BGP origin-AS validation knobs"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable RPKI origin-AS validation"; | | "Disable RPKI origin-AS validation"; |
| } | | } |
| } | | } |
| } | | } |
| container bestpath { | | container bestpath { |
| description | | description |
| "Change default route selection criteria"; | | "Change default route selection criteria"; |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container allow { | | container allow { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container invalid { | | container invalid { |
| presence "Indicates a invalid node is configured."; | | presence "Indicates a invalid node is configured."; |
| description | | description |
| "BGP bestpath selection will allow 'invalid' origin-AS"; | | "BGP bestpath selection will allow 'invalid' origin-AS"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy to neighbor"; | | "Apply route policy to neighbor"; |
| leaf in { | | leaf in { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Apply route policy to inbound routes"; | | "Apply route policy to inbound routes"; |
| } | | } |
| leaf out { | | leaf out { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Apply route policy to outbound routes"; | | "Apply route policy to outbound routes"; |
| } | | } |
| container retention { | | container retention { |
| description | | description |
| "Apply retention policy to inbound routes"; | | "Apply retention policy to inbound routes"; |
| leaf route-policy-name { | | leaf route-policy-name { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| must "../retention-time"; | | must "../retention-time"; |
| description | | description |
| "Apply retention policy to inbound routes"; | | "Apply retention policy to inbound routes"; |
| } | | } |
| leaf retention-time { | | leaf retention-time { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| must "../route-policy-name"; | | must "../route-policy-name"; |
| description | | description |
| "Retention-time for this neighbor"; | | "Retention-time for this neighbor"; |
| } | | } |
| } | | } |
| } | | } |
| container orf { | | container orf { |
| description | | description |
| "Specify ORF and inbound filtering criteria"; | | "Specify ORF and inbound filtering criteria"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy to specify ORF and inbound filter"; | | "Route policy to specify ORF and inbound filter"; |
| } | | } |
| } | | } |
| container replace-private-as { | | container replace-private-as { |
| presence "Indicates a replace-private-as node is configured."; | | presence "Indicates a replace-private-as node is configured."; |
| description | | description |
| "Replace private AS number from outbound updates"; | | "Replace private AS number from outbound updates"; |
| container internal { | | container internal { |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| } | | } |
| container remove-private-as { | | container remove-private-as { |
| presence "Indicates a remove-private-as node is configured."; | | presence "Indicates a remove-private-as node is configured."; |
| description | | description |
| "Remove private AS number from outbound updates"; | | "Remove private AS number from outbound updates"; |
| container entire-aspath { | | container entire-aspath { |
| must "not(../inheritance-disable or ../internal)"; | | must "not(../inheritance-disable or ../internal)"; |
| presence "Indicates a entire-aspath node is configured."; | | presence "Indicates a entire-aspath node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../entire-aspath or ../internal)"; | | must "not(../entire-aspath or ../internal)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| container internal { | | container internal { |
| must "not(../entire-aspath or ../inheritance-disable)"; | | must "not(../entire-aspath or ../inheritance-disable)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container remove-private-as-inbound { | | container remove-private-as-inbound { |
| must "not(entire-aspath and inheritance-disable)"; | | must "not(entire-aspath and inheritance-disable)"; |
| presence "Indicates a inbound node is configured."; | | presence "Indicates a inbound node is configured."; |
| description | | description |
| "Remove private AS number from inbound updates"; | | "Remove private AS number from inbound updates"; |
| container entire-aspath { | | container entire-aspath { |
| presence "Indicates a entire-aspath node is configured."; | | presence "Indicates a entire-aspath node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| } | | } |
| container enforce-multiple-labels { | | container enforce-multiple-labels { |
| presence "Indicates a enforce-multiple-labels node is configured."; | | presence "Indicates a enforce-multiple-labels node is configured."; |
| description | | description |
| "Enforce support for multiple labels (requires manual session flap)"; | | "Enforce support for multiple labels (requires manual session flap)"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent enforce-multiple-labels from being inherited from the parent"; | | "Prevent enforce-multiple-labels from being inherited from the parent"; |
| } | | } |
| } | | } |
| container route-reflector-client { | | container route-reflector-client { |
| presence "Indicates a route-reflector-client node is configured."; | | presence "Indicates a route-reflector-client node is configured."; |
| description | | description |
| "Configure a neighbor as Route Reflector client"; | | "Configure a neighbor as Route Reflector client"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent route-reflector-client from being inherited from the parent"; | | "Prevent route-reflector-client from being inherited from the parent"; |
| } | | } |
| } | | } |
| container accept-route-legacy-rt { | | container accept-route-legacy-rt { |
| presence "Indicates a accept-route-legacy-rt node is configured."; | | presence "Indicates a accept-route-legacy-rt node is configured."; |
| description | | description |
| "Configure a neighbor to support legacy PE for RT-Constraint AF"; | | "Configure a neighbor to support legacy PE for RT-Constraint AF"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent accept-route-legacy-RT from being inherited from the parent"; | | "Prevent accept-route-legacy-RT from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-community-ebgp { | | container send-community-ebgp { |
| presence "Indicates a send-community-ebgp node is configured."; | | presence "Indicates a send-community-ebgp node is configured."; |
| description | | description |
| "Send community attribute to this external neighbor"; | | "Send community attribute to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-community-ebgp from being inherited from the parent"; | | "Prevent send-community-ebgp from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-community-gshut-ebgp { | | container send-community-gshut-ebgp { |
| presence "Indicates a send-community-gshut-ebgp node is configured."; | | presence "Indicates a send-community-gshut-ebgp node is configured."; |
| description | | description |
| "Allow the g-shut community to be sent to this external neighbor"; | | "Allow the g-shut community to be sent to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-community-gshut-ebgp from being inherited from the parent"; | | "Prevent send-community-gshut-ebgp from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-extended-community-ebgp { | | container send-extended-community-ebgp { |
| presence "Indicates a send-extended-community-ebgp node is configured."; | | presence "Indicates a send-extended-community-ebgp node is configured."; |
| description | | description |
| "Send extended community attribute to this external neighbor"; | | "Send extended community attribute to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-extended-community-ebgp from being inherited from parent"; | | "Prevent send-extended-community-ebgp from being inherited from parent"; |
| } | | } |
| } | | } |
| container soft-reconfiguration { | | container soft-reconfiguration { |
| description | | description |
| "Per neighbor soft reconfiguration"; | | "Per neighbor soft reconfiguration"; |
| container inbound { | | container inbound { |
| presence "Indicates a inbound node is configured."; | | presence "Indicates a inbound node is configured."; |
| description | | description |
| "Allow inbound soft reconfiguration for this neighbor"; | | "Allow inbound soft reconfiguration for this neighbor"; |
| container rpki-dropped-only { | | container rpki-dropped-only { |
| must "not(../rpki-tested-only or ../always or ../inheritance-disable)"; | | must "not(../rpki-tested-only or ../always or ../inheritance-disable)"; |
| presence "Indicates a rpki-dropped-only node is configured."; | | presence "Indicates a rpki-dropped-only node is configured."; |
| description | | description |
| "Use soft-reconfig, for paths dropped by route-policy which have RPKI validity state check"; | | "Use soft-reconfig, for paths dropped by route-policy which have RPKI validity state check"; |
| } | | } |
| container rpki-tested-only { | | container rpki-tested-only { |
| must "not(../rpki-dropped-only or ../always or ../inheritance-disable)"; | | must "not(../rpki-dropped-only or ../always or ../inheritance-disable)"; |
| presence "Indicates a rpki-tested-only node is configured."; | | presence "Indicates a rpki-tested-only node is configured."; |
| description | | description |
| "Use soft-reconfig for paths tested or dropped by route-policy which have RPKI validity state check"; | | "Use soft-reconfig for paths tested or dropped by route-policy which have RPKI validity state check"; |
| } | | } |
| container always { | | container always { |
| must "not(../rpki-dropped-only or ../rpki-tested-only or ../inheritance-disable)"; | | must "not(../rpki-dropped-only or ../rpki-tested-only or ../inheritance-disable)"; |
| presence "Indicates a always node is configured."; | | presence "Indicates a always node is configured."; |
| description | | description |
| "Always use soft reconfig, even if route refresh is supported"; | | "Always use soft reconfig, even if route refresh is supported"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../rpki-dropped-only or ../rpki-tested-only or ../always)"; | | must "not(../rpki-dropped-only or ../rpki-tested-only or ../always)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent soft-reconfiguration from being inherited from the parent"; | | "Prevent soft-reconfiguration from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container update { | | container update { |
| description | | description |
| "BGP out bound message"; | | "BGP out bound message"; |
| container out { | | container out { |
| description | | description |
| "BGP out bound message handling"; | | "BGP out bound message handling"; |
| container originator-loopcheck { | | container originator-loopcheck { |
| presence "Indicates a originator-loopcheck node is configured."; | | presence "Indicates a originator-loopcheck node is configured."; |
| description | | description |
| "Loop check for same originator which sent the route"; | | "Loop check for same originator which sent the route"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable originator loop check"; | | "Disable originator loop check"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container advertise { | | container advertise { |
| description | | description |
| "Per neighbor advertisement options"; | | "Per neighbor advertisement options"; |
| container permanent-network { | | container permanent-network { |
| presence "Indicates a permanent-network node is configured."; | | presence "Indicates a permanent-network node is configured."; |
| description | | description |
| "Allow permanent networks for this neighbor"; | | "Allow permanent networks for this neighbor"; |
| } | | } |
| container local-labeled-route { | | container local-labeled-route { |
| presence "Indicates a local-labeled-route node is configured."; | | presence "Indicates a local-labeled-route node is configured."; |
| description | | description |
| "Advertisement of routes with local-label"; | | "Advertisement of routes with local-label"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise routes with local-label via Unicast SAFI"; | | "Do not advertise routes with local-label via Unicast SAFI"; |
| } | | } |
| } | | } |
| } | | } |
| leaf weight { | | leaf weight { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "default weight"; | | "default weight"; |
| } | | } |
| } | | } |
| description | | description |
| "Set default weight for routes from this neighbor"; | | "Set default weight for routes from this neighbor"; |
| } | | } |
| container allowas-in { | | container allowas-in { |
| presence "Indicates a allowas-in node is configured."; | | presence "Indicates a allowas-in node is configured."; |
| description | | description |
| "Allow as-path with my AS present in it"; | | "Allow as-path with my AS present in it"; |
| leaf number-of-occurences { | | leaf number-of-occurences { |
| type uint32 { | | type uint32 { |
| range "1..10" { | | range "1..10" { |
| description | | description |
| "Number of occurences of AS number"; | | "Number of occurences of AS number"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of occurences of AS number"; | | "Number of occurences of AS number"; |
| } | | } |
| } | | } |
| container allowconfedas-in { | | container allowconfedas-in { |
| presence "Indicates a allowconfedas-in node is configured."; | | presence "Indicates a allowconfedas-in node is configured."; |
| description | | description |
| "Allow as-path with my confederation AS present in it"; | | "Allow as-path with my confederation AS present in it"; |
| leaf number-of-occurences { | | leaf number-of-occurences { |
| type uint32 { | | type uint32 { |
| range "1..10" { | | range "1..10" { |
| description | | description |
| "Number of occurences of confederation AS number"; | | "Number of occurences of confederation AS number"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of occurences of confederation AS number"; | | "Number of occurences of confederation AS number"; |
| } | | } |
| } | | } |
| container long-lived-graceful-restart { | | container long-lived-graceful-restart { |
| description | | description |
| "Enable long lived graceful restart support"; | | "Enable long lived graceful restart support"; |
| container stale-time { | | container stale-time { |
| description | | description |
| "Maximum time to wait before purging long-lived stale routes"; | | "Maximum time to wait before purging long-lived stale routes"; |
| leaf send { | | leaf send { |
| type uint32 { | | type uint32 { |
| range "0..16777215" { | | range "0..16777215" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Stale-time sent in LLGR Capability"; | | "Stale-time sent in LLGR Capability"; |
| } | | } |
| leaf accept { | | leaf accept { |
| type uint32 { | | type uint32 { |
| range "0..16777215" { | | range "0..16777215" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum stale-time acceptable from neighbor"; | | "Maximum stale-time acceptable from neighbor"; |
| } | | } |
| } | | } |
| container capable { | | container capable { |
| presence "Indicates a capable node is configured."; | | presence "Indicates a capable node is configured."; |
| description | | description |
| "Treat neighbor as LLGR capable"; | | "Treat neighbor as LLGR capable"; |
| } | | } |
| } | | } |
| container as-override { | | container as-override { |
| presence "Indicates a as-override node is configured."; | | presence "Indicates a as-override node is configured."; |
| description | | description |
| "Override matching AS-number while sending update"; | | "Override matching AS-number while sending update"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent as-override from being inherited from the parent"; | | "Prevent as-override from being inherited from the parent"; |
| } | | } |
| } | | } |
| container aigp { | | container aigp { |
| presence "Indicates a aigp node is configured."; | | presence "Indicates a aigp node is configured."; |
| description | | description |
| "Enable AIGP for this neighbor "; | | "Enable AIGP for this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable AIGP"; | | "Disable AIGP"; |
| } | | } |
| } | | } |
| container aigp-send { | | container aigp-send { |
| description | | description |
| "Copy AIGP"; | | "Copy AIGP"; |
| container cost-community { | | container cost-community { |
| description | | description |
| "Send AIGP value in Cost Community"; | | "Send AIGP value in Cost Community"; |
| leaf cost-community-id { | | leaf cost-community-id { |
| type uint32 { | | type uint32 { |
| range "0..255" { | | range "0..255" { |
| description | | description |
| "Cost community ID"; | | "Cost community ID"; |
| } | | } |
| } | | } |
| must "not(../disable)"; | | must "not(../disable)"; |
| description | | description |
| "Cost community ID"; | | "Cost community ID"; |
| } | | } |
| container poi { | | container poi { |
| must "(igp-cost or pre-bestpath) and not(igp-cost and pre-bestpath)"; | | must "(igp-cost or pre-bestpath) and not(igp-cost and pre-bestpath)"; |
| presence "Indicates a poi node is configured."; | | presence "Indicates a poi node is configured."; |
| description | | description |
| "Point of insertion for bestpath calculation"; | | "Point of insertion for bestpath calculation"; |
| container igp-cost { | | container igp-cost { |
| presence "Indicates a igp-cost node is configured."; | | presence "Indicates a igp-cost node is configured."; |
| description | | description |
| "Cost community is used after IGP distance to next hop"; | | "Cost community is used after IGP distance to next hop"; |
| container transitive { | | container transitive { |
| presence "Indicates a transitive node is configured."; | | presence "Indicates a transitive node is configured."; |
| description | | description |
| "Enable transitive cost community"; | | "Enable transitive cost community"; |
| } | | } |
| } | | } |
| container pre-bestpath { | | container pre-bestpath { |
| presence "Indicates a pre-bestpath node is configured."; | | presence "Indicates a pre-bestpath node is configured."; |
| description | | description |
| "Cost community is first step in best path calculation"; | | "Cost community is first step in best path calculation"; |
| container transitive { | | container transitive { |
| presence "Indicates a transitive node is configured."; | | presence "Indicates a transitive node is configured."; |
| description | | description |
| "Enable transitive cost community"; | | "Enable transitive cost community"; |
| } | | } |
| } | | } |
| } | | } |
| container disable { | | container disable { |
| must "not(../cost-community-id)"; | | must "not(../cost-community-id)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable aigp send cost-community"; | | "Disable aigp send cost-community"; |
| } | | } |
| } | | } |
| container med { | | container med { |
| presence "Indicates a med node is configured."; | | presence "Indicates a med node is configured."; |
| description | | description |
| "Send AIGP value in MED"; | | "Send AIGP value in MED"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable aigp send med"; | | "Disable aigp send med"; |
| } | | } |
| } | | } |
| } | | } |
| container validation { | | container validation { |
| when "../af-name = 'ipv4-flowspec' or ../af-name = 'ipv6-flowspec'"; | | when "../af-name = 'ipv4-flowspec' or ../af-name = 'ipv6-flowspec'"; |
| presence "Indicates a validation node is configured."; | | presence "Indicates a validation node is configured."; |
| description | | description |
| "Flowspec Validation for this neighbor "; | | "Flowspec Validation for this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Flowspec Validation"; | | "Disable Flowspec Validation"; |
| } | | } |
| container redirect { | | container redirect { |
| description | | description |
| "Flowspec Redirect nexthop Validation"; | | "Flowspec Redirect nexthop Validation"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Flowspec Redirect nexthop Validation"; | | "Disable Flowspec Redirect nexthop Validation"; |
| } | | } |
| } | | } |
| } | | } |
| container send-multicast-attributes { | | container send-multicast-attributes { |
| when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv4-labeled-unicast' or ../af-name = 'ipv6-labeled-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-multicast' or ../af-name = 'ipv4-mvpn' or ../af-name = 'ipv6-mvpn'"; | | when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv4-labeled-unicast' or ../af-name = 'ipv6-labeled-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-multicast' or ../af-name = 'ipv4-mvpn' or ../af-name = 'ipv6-mvpn'"; |
| presence "Indicates a send-multicast-attributes node is configured."; | | presence "Indicates a send-multicast-attributes node is configured."; |
| description | | description |
| "Send multicast attributes to this neighbor "; | | "Send multicast attributes to this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable send multicast attribute"; | | "Disable send multicast attribute"; |
| } | | } |
| } | | } |
| container signalling { | | container signalling { |
| description | | description |
| "Signalling protocols to disable, BGP or LDP"; | | "Signalling protocols to disable, BGP or LDP"; |
| container bgp { | | container bgp { |
| description | | description |
| "Select BGP to disable"; | | "Select BGP to disable"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Signalling type"; | | "Disable Signalling type"; |
| } | | } |
| } | | } |
| container ldp { | | container ldp { |
| description | | description |
| "Select LDP to disable"; | | "Select LDP to disable"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Signalling type"; | | "Disable Signalling type"; |
| } | | } |
| } | | } |
| } | | } |
| container accept-own { | | container accept-own { |
| presence "Indicates a accept-own node is configured."; | | presence "Indicates a accept-own node is configured."; |
| description | | description |
| "Handle self-originated routes with Accept-Own community"; | | "Handle self-originated routes with Accept-Own community"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent item being inherited from a parent group"; | | "Prevent item being inherited from a parent group"; |
| } | | } |
| } | | } |
| container cluster-id { | | container cluster-id { |
| description | | description |
| "Allow routes with first cluster-id in list is same as the router's cluster id"; | | "Allow routes with first cluster-id in list is same as the router's cluster id"; |
| container allow-equal { | | container allow-equal { |
| presence "Indicates a allow-equal node is configured."; | | presence "Indicates a allow-equal node is configured."; |
| description | | description |
| "Accept routes with first cluster-id in list is same as the router's cluster id"; | | "Accept routes with first cluster-id in list is same as the router's cluster id"; |
| container disable { | | container disable { |
| presence "Indicates a allow-equal node is configured."; | | presence "Indicates a allow-equal node is configured."; |
| description | | description |
| "Prevent the configuration from being inherited."; | | "Prevent the configuration from being inherited."; |
| } | | } |
| } | | } |
| } | | } |
| container site-of-origin { | | container site-of-origin { |
| description | | description |
| "Site-of-Origin extended community associated with the neighbor"; | | "Site-of-Origin extended community associated with the neighbor"; |
| container two-byte-as { | | container two-byte-as { |
| must "not(../four-byte-as or ../ip-address)"; | | must "not(../four-byte-as or ../ip-address)"; |
| presence "Indicates a two-byte-as node is configured."; | | presence "Indicates a two-byte-as node is configured."; |
| description | | description |
| "two-byte-as Site-of-Origin"; | | "two-byte-as Site-of-Origin"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| mandatory true; | | mandatory true; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| container four-byte-as { | | container four-byte-as { |
| must "not(../two-byte-as or ../ip-address)"; | | must "not(../two-byte-as or ../ip-address)"; |
| presence "Indicates a four-byte-as node is configured."; | | presence "Indicates a four-byte-as node is configured."; |
| description | | description |
| "four-byte-as site-of-Origin"; | | "four-byte-as site-of-Origin"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| mandatory true; | | mandatory true; |
| description | | description |
| "4-byte AS number"; | | "4-byte AS number"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| container ip-address { | | container ip-address { |
| must "not(../two-byte-as or ../four-byte-as)"; | | must "not(../two-byte-as or ../four-byte-as)"; |
| presence "Indicates a ip-address node is configured."; | | presence "Indicates a ip-address node is configured."; |
| description | | description |
| "configure this node"; | | "configure this node"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| mandatory true; | | mandatory true; |
| description | | description |
| "configure this node"; | | "configure this node"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IPv4Address:index (hex or decimal format)"; | | "IPv4Address:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "IPv4Address:index (hex or decimal format)"; | | "IPv4Address:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| container multipath { | | container multipath { |
| presence "Indicates a multipath node is configured."; | | presence "Indicates a multipath node is configured."; |
| description | | description |
| "Paths from this neighbor is eligible for multipath"; | | "Paths from this neighbor is eligible for multipath"; |
| } | | } |
| container additional-paths { | | container additional-paths { |
| description | | description |
| "Additional paths capability"; | | "Additional paths capability"; |
| container receive { | | container receive { |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Additional paths Receive capability"; | | "Additional paths Receive capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Prevent additional-paths receive from being inherited from the parent"; | | "Prevent additional-paths receive from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send { | | container send { |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Additional paths Send capability"; | | "Additional paths Send capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Prevent additional-paths receive from being inherited from the parent"; | | "Prevent additional-paths receive from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container update { | | container update { |
| description | | description |
| "BGP Update configuration"; | | "BGP Update configuration"; |
| container in { | | container in { |
| description | | description |
| "Inbound update message handling"; | | "Inbound update message handling"; |
| container filtering { | | container filtering { |
| presence "Indicates a filtering node is configured."; | | presence "Indicates a filtering node is configured."; |
| description | | description |
| "Inbound update message filtering"; | | "Inbound update message filtering"; |
| container message { | | container message { |
| description | | description |
| "Filtered update messages"; | | "Filtered update messages"; |
| container buffers { | | container buffers { |
| presence "Indicates a buffers node is configured."; | | presence "Indicates a buffers node is configured."; |
| description | | description |
| "Filtered update message buffers"; | | "Filtered update message buffers"; |
| leaf number-of-buffers { | | leaf number-of-buffers { |
| type uint32 { | | type uint32 { |
| range "0..25" { | | range "0..25" { |
| description | | description |
| "Number of buffers to store filtered update messages (resizing does not take effect after filtering action has started)"; | | "Number of buffers to store filtered update messages (resizing does not take effect after filtering action has started)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Filtered update message buffers"; | | "Filtered update message buffers"; |
| } | | } |
| container non-circular { | | container non-circular { |
| presence "Indicates a non-circular node is configured."; | | presence "Indicates a non-circular node is configured."; |
| description | | description |
| "Message buffer list is not circular"; | | "Message buffer list is not circular"; |
| } | | } |
| } | | } |
| } | | } |
| container logging { | | container logging { |
| description | | description |
| "Update filtering syslog message"; | | "Update filtering syslog message"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable update filtering syslog message"; | | "Disable update filtering syslog message"; |
| } | | } |
| } | | } |
| container attribute-filter { | | container attribute-filter { |
| description | | description |
| "Attribute-filter configuration"; | | "Attribute-filter configuration"; |
| leaf group { | | leaf group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Attribute-filter group name"; | | "Attribute-filter group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attribute-filter group configuration"; | | "Attribute-filter group configuration"; |
| } | | } |
| } | | } |
| } | | } |
| container merge { | | container merge { |
| description | | description |
| "Merge incoming updates"; | | "Merge incoming updates"; |
| container safi { | | container safi { |
| description | | description |
| "SAFI of the NLRIs to merge"; | | "SAFI of the NLRIs to merge"; |
| container unicast { | | container unicast { |
| description | | description |
| "IPv4/IPv6 unicast paths"; | | "IPv4/IPv6 unicast paths"; |
| container labeled-unicast { | | container labeled-unicast { |
| presence "Indicates a labeled-unicast node is configured."; | | presence "Indicates a labeled-unicast node is configured."; |
| description | | description |
| "IPv4/IPv6 labeled-unicast paths"; | | "IPv4/IPv6 labeled-unicast paths"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container error-handling { | | container error-handling { |
| description | | description |
| "Inbound update message error handling"; | | "Inbound update message error handling"; |
| container avoid-reset { | | container avoid-reset { |
| presence "Indicates a avoid-reset node is configured."; | | presence "Indicates a avoid-reset node is configured."; |
| description | | description |
| "Avoid neighbor reset during inbound update message error handling"; | | "Avoid neighbor reset during inbound update message error handling"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Neighbor may be reset during inbound update message error handling"; | | "Neighbor may be reset during inbound update message error handling"; |
| } | | } |
| } | | } |
| container treat-as-withdraw { | | container treat-as-withdraw { |
| presence "Indicates a treat-as-withdraw node is configured."; | | presence "Indicates a treat-as-withdraw node is configured."; |
| description | | description |
| "Treat NLRIs as withdraws during inbound update message error handling"; | | "Treat NLRIs as withdraws during inbound update message error handling"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable treat NLRIs as withdraws during inbound update message error handling"; | | "Disable treat NLRIs as withdraws during inbound update message error handling"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container graceful-maintenance { | | container graceful-maintenance { |
| presence "Indicates a graceful-maintenance node is configured."; | | presence "Indicates a graceful-maintenance node is configured."; |
| description | | description |
| "Attributes for Graceful Maintenance. This will cause | | "Attributes for Graceful Maintenance. This will cause |
| neig de-prer routes from this router and | | neig de-prer routes from this router and |
| choonates.his allows the router to be | | choonates.his allows the router to be |
| brour out service gracefully."; | | brour out service gracefully."; |
| container local-preference { | | container local-preference { |
| must "local-preference-value or inheritance-disable"; | | must "local-preference-value or inheritance-disable"; |
| presence "Indicates a local-preference node is configured."; | | presence "Indicates a local-preference node is configured."; |
| description | | description |
| "local preference with which to advertise routes to ibgps. Deflt=No Touch"; | | "local preference with which to advertise routes to ibgps. Deflt=No Touch"; |
| leaf local-preference-value { | | leaf local-preference-value { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Range of values for Local Preference"; | | "Range of values for Local Preference"; |
| } | | } |
| } | | } |
| description | | description |
| "Range of values for Local Preference"; | | "Range of values for Local Preference"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local preference from being inherited from the parent"; | | "Prevent local preference from being inherited from the parent"; |
| } | | } |
| } | | } |
| container as-prepends { | | container as-prepends { |
| must "number-of-as-prepends or inheritance-disable"; | | must "number-of-as-prepends or inheritance-disable"; |
| presence "Indicates a as-prepends node is configured."; | | presence "Indicates a as-prepends node is configured."; |
| description | | description |
| "Number of times to prepend the local AS number to the | | "Number of times to prepend the local AS number to the |
| AS poutes.efault=0"; | | AS poutes.efault=0"; |
| leaf number-of-as-prepends { | | leaf number-of-as-prepends { |
| type uint32 { | | type uint32 { |
| range "0..6" { | | range "0..6" { |
| description | | description |
| "Range of number of AS prepends"; | | "Range of number of AS prepends"; |
| } | | } |
| } | | } |
| description | | description |
| "Range of number of AS prepends"; | | "Range of number of AS prepends"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent AS prepends from being inherited from the parent"; | | "Prevent AS prepends from being inherited from the parent"; |
| } | | } |
| } | | } |
| container activate { | | container activate { |
| presence "Indicates a activate node is configured."; | | presence "Indicates a activate node is configured."; |
| description | | description |
| "Routes will be announced with the graceful maintenance | | "Routes will be announced with the graceful maintenance |
| attrhile aivated either here or under router | | attrhile aivated either here or under router |
| bgp ation.hile activated, all routes to this | | bgp ation.hile activated, all routes to this |
| neigl be aounced with the attributes | | neigl be aounced with the attributes |
| confere anall routes from this neighbor will | | confere anall routes from this neighbor will |
| be a to otr neighbors with the graceful | | be a to otr neighbors with the graceful |
| mainattribes configured under those | | mainattribes configured under those |
| neighe g-st community will be announced | | neighe g-st community will be announced |
| regaf the her attributes configured here. To | | regaf the her attributes configured here. To |
| alloshut cmunity to be announced to ebgp | | alloshut cmunity to be announced to ebgp |
| neighe sencommunity-gshut-ebgp configuration | | neighe sencommunity-gshut-ebgp configuration |
| is aired. te: changes to the attributes will | | is aired. te: changes to the attributes will |
| not ect whe activated."; | | not ect whe activated."; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent activate from being inherited from the parent"; | | "Prevent activate from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| leaf remote-as { | | leaf remote-as { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| leaf remote-as-list { | | leaf remote-as-list { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "as-list name"; | | "as-list name"; |
| } | | } |
| } | | } |
| description | | description |
| "Remote as-list configuration"; | | "Remote as-list configuration"; |
| } | | } |
| container use { | | container use { |
| description | | description |
| "Inherit configuration from a group"; | | "Inherit configuration from a group"; |
| leaf session-group { | | leaf session-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Session group name"; | | "Session group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit address-family independent config from a session-group"; | | "Inherit address-family independent config from a session-group"; |
| } | | } |
| leaf neighbor-group { | | leaf neighbor-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Neighbor-group name"; | | "Neighbor-group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit configuration from a neighbor-group"; | | "Inherit configuration from a neighbor-group"; |
| } | | } |
| } | | } |
| container advertisement-interval { | | container advertisement-interval { |
| presence "Indicates a advertisement-interval node is configured."; | | presence "Indicates a advertisement-interval node is configured."; |
| description | | description |
| "Minimum interval between sending BGP routing updates"; | | "Minimum interval between sending BGP routing updates"; |
| leaf time-in-seconds { | | leaf time-in-seconds { |
| type uint32 { | | type uint32 { |
| range "0..600" { | | range "0..600" { |
| description | | description |
| "time in seconds"; | | "time in seconds"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Minimum interval between sending BGP routing updates"; | | "Minimum interval between sending BGP routing updates"; |
| } | | } |
| leaf time-in-milliseconds { | | leaf time-in-milliseconds { |
| type uint32 { | | type uint32 { |
| range "0..999" { | | range "0..999" { |
| description | | description |
| "time in milliseconds"; | | "time in milliseconds"; |
| } | | } |
| } | | } |
| description | | description |
| "time in milliseconds"; | | "time in milliseconds"; |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Up to 256 characters describing this neighbor"; | | "Up to 256 characters describing this neighbor"; |
| } | | } |
| } | | } |
| description | | description |
| "Neighbor specific description"; | | "Neighbor specific description"; |
| } | | } |
| container ignore-connected-check { | | container ignore-connected-check { |
| presence "Indicates a ignore-connected-check node is configured."; | | presence "Indicates a ignore-connected-check node is configured."; |
| description | | description |
| "Bypass the directly connected nexthop check for single-hop eBGP peering"; | | "Bypass the directly connected nexthop check for single-hop eBGP peering"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ignore-connected-check from being inherited from the parent"; | | "Prevent ignore-connected-check from being inherited from the parent"; |
| } | | } |
| } | | } |
| container internal-vpn-client { | | container internal-vpn-client { |
| presence "Indicates a internal-vpn-client node is configured."; | | presence "Indicates a internal-vpn-client node is configured."; |
| description | | description |
| "Preserve iBGP CE neighbor path in ATTR_SET across VPN core"; | | "Preserve iBGP CE neighbor path in ATTR_SET across VPN core"; |
| } | | } |
| container ebgp-multihop { | | container ebgp-multihop { |
| presence "Indicates a ebgp-multihop node is configured."; | | presence "Indicates a ebgp-multihop node is configured."; |
| description | | description |
| "Allow EBGP neighbors not on directly connected networks"; | | "Allow EBGP neighbors not on directly connected networks"; |
| leaf maximum-hop-count { | | leaf maximum-hop-count { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "maximum hop count"; | | "maximum hop count"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "maximum hop count"; | | "maximum hop count"; |
| } | | } |
| container mpls { | | container mpls { |
| presence "Indicates a mpls node is configured."; | | presence "Indicates a mpls node is configured."; |
| description | | description |
| "Disable BGP MPLS forwarding"; | | "Disable BGP MPLS forwarding"; |
| } | | } |
| } | | } |
| container tcp { | | container tcp { |
| description | | description |
| "TCP session configuration commands"; | | "TCP session configuration commands"; |
| container mss { | | container mss { |
| must "initial-mss or inheritance-disable"; | | must "initial-mss or inheritance-disable"; |
| presence "Indicates a mss node is configured."; | | presence "Indicates a mss node is configured."; |
| description | | description |
| "Maximum Segment Size"; | | "Maximum Segment Size"; |
| leaf initial-mss { | | leaf initial-mss { |
| type uint32 { | | type uint32 { |
| range "68..10000" { | | range "68..10000" { |
| description | | description |
| "TCP initial maximum segment size"; | | "TCP initial maximum segment size"; |
| } | | } |
| } | | } |
| description | | description |
| "TCP initial maximum segment size"; | | "TCP initial maximum segment size"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent tcp mss from being inherited from the parent"; | | "Prevent tcp mss from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container bmp-activate { | | container bmp-activate { |
| description | | description |
| "Enable BMP logging for this neighbor"; | | "Enable BMP logging for this neighbor"; |
| container servers { | | container servers { |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| list server { | | list server { |
| key "server-id"; | | key "server-id"; |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| leaf server-id { | | leaf server-id { |
| type uint32 { | | type uint32 { |
| range "1..8" { | | range "1..8" { |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| } | | } |
| } | | } |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container bfd { | | container bfd { |
| description | | description |
| "Configure BFD parameters"; | | "Configure BFD parameters"; |
| container fast-detect { | | container fast-detect { |
| must "not(strict-mode and disable)"; | | must "not(strict-mode and disable)"; |
| presence "Indicates a fast-detect node is configured."; | | presence "Indicates a fast-detect node is configured."; |
| description | | description |
| "Enable Fast detection"; | | "Enable Fast detection"; |
| container strict-mode { | | container strict-mode { |
| presence "Indicates a strict-mode node is configured."; | | presence "Indicates a strict-mode node is configured."; |
| description | | description |
| "Hold down neighbor session until BFD session is up"; | | "Hold down neighbor session until BFD session is up"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Prevent bfd settings from being inherited from the parent"; | | "Prevent bfd settings from being inherited from the parent"; |
| } | | } |
| } | | } |
| leaf minimum-interval { | | leaf minimum-interval { |
| type uint32 { | | type uint32 { |
| range "3..30000" { | | range "3..30000" { |
| description | | description |
| "hello interval in milli-seconds"; | | "hello interval in milli-seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Hello interval"; | | "Hello interval"; |
| } | | } |
| leaf multiplier { | | leaf multiplier { |
| type uint32 { | | type uint32 { |
| range "2..16" { | | range "2..16" { |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| container keychain { | | container keychain { |
| must "name or inheritance-disable"; | | must "name or inheritance-disable"; |
| presence "Indicates a keychain node is configured."; | | presence "Indicates a keychain node is configured."; |
| description | | description |
| "Set keychain based authentication"; | | "Set keychain based authentication"; |
| leaf name { | | leaf name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent keychain from being inherited from parent"; | | "Prevent keychain from being inherited from parent"; |
| } | | } |
| } | | } |
| container local-as { | | container local-as { |
| must "as-number or inheritance-disable"; | | must "as-number or inheritance-disable"; |
| presence "Indicates a local-as node is configured."; | | presence "Indicates a local-as node is configured."; |
| description | | description |
| "Specify local AS number"; | | "Specify local AS number"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| container no-prepend { | | container no-prepend { |
| presence "Indicates a no-prepend node is configured."; | | presence "Indicates a no-prepend node is configured."; |
| description | | description |
| "Do not prepend local AS to announcements from this neighbor"; | | "Do not prepend local AS to announcements from this neighbor"; |
| container replace-as { | | container replace-as { |
| presence "Indicates a replace-as node is configured."; | | presence "Indicates a replace-as node is configured."; |
| description | | description |
| "Prepend only local AS to announcements to this neighbor"; | | "Prepend only local AS to announcements to this neighbor"; |
| container dual-as { | | container dual-as { |
| presence "Indicates a dual-as node is configured."; | | presence "Indicates a dual-as node is configured."; |
| description | | description |
| "Dual-AS mode"; | | "Dual-AS mode"; |
| } | | } |
| } | | } |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local AS from being inherited from parent"; | | "Prevent local AS from being inherited from parent"; |
| } | | } |
| } | | } |
| container password { | | container password { |
| must "encrypted or inheritance-disable"; | | must "encrypted or inheritance-disable"; |
| presence "Indicates a password node is configured."; | | presence "Indicates a password node is configured."; |
| description | | description |
| "Set a password"; | | "Set a password"; |
| leaf encrypted { | | leaf encrypted { |
| type xr:Proprietary-password; | | type xr:Proprietary-password; |
| description | | description |
| "Specifies an ENCRYPTED password will follow"; | | "Specifies an ENCRYPTED password will follow"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent password from being inherited from parent"; | | "Prevent password from being inherited from parent"; |
| } | | } |
| } | | } |
| container receive-buffer-size { | | container receive-buffer-size { |
| presence "Indicates a receive-buffer-size node is configured."; | | presence "Indicates a receive-buffer-size node is configured."; |
| description | | description |
| "Set socket and BGP receive buffer size"; | | "Set socket and BGP receive buffer size"; |
| leaf receive-socket-buffer-size { | | leaf receive-socket-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "Receive socket buffer size in bytes"; | | "Receive socket buffer size in bytes"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Set socket and BGP receive buffer size"; | | "Set socket and BGP receive buffer size"; |
| } | | } |
| leaf bgp-read-buffer-size { | | leaf bgp-read-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| container send-buffer-size { | | container send-buffer-size { |
| presence "Indicates a send-buffer-size node is configured."; | | presence "Indicates a send-buffer-size node is configured."; |
| description | | description |
| "Set socket and BGP send buffer size"; | | "Set socket and BGP send buffer size"; |
| leaf send-socket-buffer-size { | | leaf send-socket-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "Send socket buffer size in bytes"; | | "Send socket buffer size in bytes"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Set socket and BGP send buffer size"; | | "Set socket and BGP send buffer size"; |
| } | | } |
| leaf bgp-write-buffer-size { | | leaf bgp-write-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| } | | } |
| container shutdown { | | container shutdown { |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Administratively shut down this neighbor"; | | "Administratively shut down this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent this neighbor being shutdown, even if its parent is"; | | "Prevent this neighbor being shutdown, even if its parent is"; |
| } | | } |
| } | | } |
| container fast-fallover { | | container fast-fallover { |
| presence "Indicates a fast-fallover node is configured."; | | presence "Indicates a fast-fallover node is configured."; |
| description | | description |
| "Force neighbor to be directly connected. Bring neighbor down if its interface goes down"; | | "Force neighbor to be directly connected. Bring neighbor down if its interface goes down"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent this neighbor from inheriting this config from a group it is in"; | | "Prevent this neighbor from inheriting this config from a group it is in"; |
| } | | } |
| } | | } |
| container timers { | | container timers { |
| presence "Indicates a timers node is configured."; | | presence "Indicates a timers node is configured."; |
| description | | description |
| "BGP per neighbor timers"; | | "BGP per neighbor timers"; |
| leaf keepalive-interval { | | leaf keepalive-interval { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "Keepalive interval"; | | "Keepalive interval"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "BGP timers"; | | "BGP timers"; |
| } | | } |
| leaf holdtime { | | leaf holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Holdtime."; | | "Holdtime."; |
| } | | } |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Holdtime. Set 0 to disable keepalives/hold time."; | | "Holdtime. Set 0 to disable keepalives/hold time."; |
| } | | } |
| leaf minimum-acceptable-holdtime { | | leaf minimum-acceptable-holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Minimum acceptable holdtime from neighbor."; | | "Minimum acceptable holdtime from neighbor."; |
| } | | } |
| } | | } |
| } | | } |
| description | | description |
| "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; | | "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| container local { | | container local { |
| description | | description |
| "Configure local parameter"; | | "Configure local parameter"; |
| container address { | | container address { |
| must "ip-address or inheritance-disable"; | | must "ip-address or inheritance-disable"; |
| presence "Indicates a address node is configured."; | | presence "Indicates a address node is configured."; |
| description | | description |
| "use configured local address for bgp peering"; | | "use configured local address for bgp peering"; |
| leaf ip-address { | | leaf ip-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IPv4 address"; | | "IPv4 address"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local address from being inherited from parent"; | | "Prevent local address from being inherited from parent"; |
| } | | } |
| } | | } |
| } | | } |
| container log { | | container log { |
| description | | description |
| "Logging update messages per neighbor"; | | "Logging update messages per neighbor"; |
| container message { | | container message { |
| description | | description |
| "Logging update/notification messages per neighbor"; | | "Logging update/notification messages per neighbor"; |
| container in { | | container in { |
| description | | description |
| "Inbound log messages"; | | "Inbound log messages"; |
| leaf message-log-buffer-size { | | leaf message-log-buffer-size { |
| type uint32 { | | type uint32 { |
| range "1..500" { | | range "1..500" { |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| } | | } |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable inbound message logging"; | | "Disable inbound message logging"; |
| } | | } |
| container inheritance-diable { | | container inheritance-diable { |
| presence "Indicates a inheritance-diable node is configured."; | | presence "Indicates a inheritance-diable node is configured."; |
| description | | description |
| "Prevents the msg log from being inherited from the parent"; | | "Prevents the msg log from being inherited from the parent"; |
| } | | } |
| } | | } |
| container out { | | container out { |
| description | | description |
| "Outbound log messages"; | | "Outbound log messages"; |
| leaf range-for-message-log-buffer { | | leaf range-for-message-log-buffer { |
| type uint32 { | | type uint32 { |
| range "1..100" { | | range "1..100" { |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| } | | } |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable outbound message logging"; | | "Disable outbound message logging"; |
| } | | } |
| container inheritance-diable { | | container inheritance-diable { |
| presence "Indicates a inheritance-diable node is configured."; | | presence "Indicates a inheritance-diable node is configured."; |
| description | | description |
| "Prevents the msg log from being inherited from the parent"; | | "Prevents the msg log from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container neighbor { | | container neighbor { |
| description | | description |
| "Log neighbor state info"; | | "Log neighbor state info"; |
| container changes { | | container changes { |
| description | | description |
| "Log neighbor state changes"; | | "Log neighbor state changes"; |
| container detail { | | container detail { |
| must "not(../disable or ../inheritance-disable)"; | | must "not(../disable or ../inheritance-disable)"; |
| presence "Indicates a detail node is configured."; | | presence "Indicates a detail node is configured."; |
| description | | description |
| "detail"; | | "detail"; |
| } | | } |
| container disable { | | container disable { |
| must "not(../detail or ../inheritance-disable)"; | | must "not(../detail or ../inheritance-disable)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "disable"; | | "disable"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../detail or ../disable)"; | | must "not(../detail or ../disable)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevents the log state changes from being inherited from the parent"; | | "Prevents the log state changes from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf update-source { | | leaf update-source { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Source of routing updates"; | | "Source of routing updates"; |
| } | | } |
| container local-address-subnet { | | container local-address-subnet { |
| description | | description |
| "Local address subnet of routing updates"; | | "Local address subnet of routing updates"; |
| leaf ip-address { | | leaf ip-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IP address and mask or masklength"; | | "IP address and mask or masklength"; |
| } | | } |
| leaf mask-length { | | leaf mask-length { |
| type uint32 { | | type uint32 { |
| range "0..128" { | | range "0..128" { |
| description | | description |
| "IP address mask length"; | | "IP address mask length"; |
| } | | } |
| } | | } |
| description | | description |
| "IP address and mask length"; | | "IP address and mask length"; |
| } | | } |
| } | | } |
| container dmz-link-bandwidth { | | container dmz-link-bandwidth { |
| presence "Indicates a dmz-link-bandwidth node is configured."; | | presence "Indicates a dmz-link-bandwidth node is configured."; |
| description | | description |
| "Propagate the DMZ link bandwidth"; | | "Propagate the DMZ link bandwidth"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent dmz-link-bandwidth from being inherited from the parent"; | | "Prevent dmz-link-bandwidth from being inherited from the parent"; |
| } | | } |
| } | | } |
| container ebgp-recv-extcommunity-dmz { | | container ebgp-recv-extcommunity-dmz { |
| presence "Indicates a ebgp-recv-extcommunity-dmz node is configured."; | | presence "Indicates a ebgp-recv-extcommunity-dmz node is configured."; |
| description | | description |
| "Receive extcommunity dmz link bandwidth from ebgp neighbor"; | | "Receive extcommunity dmz link bandwidth from ebgp neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ebgp-send-community-dmz from being inherited from parent"; | | "Prevent ebgp-send-community-dmz from being inherited from parent"; |
| } | | } |
| } | | } |
| container ebgp-send-extcommunity-dmz { | | container ebgp-send-extcommunity-dmz { |
| must "not(cumulative and inheritance-disable)"; | | must "not(cumulative and inheritance-disable)"; |
| presence "Indicates a ebgp-send-extcommunity-dmz node is configured."; | | presence "Indicates a ebgp-send-extcommunity-dmz node is configured."; |
| description | | description |
| "Send extended community dmz link bandwidth to ebgp neighbor"; | | "Send extended community dmz link bandwidth to ebgp neighbor"; |
| container cumulative { | | container cumulative { |
| presence "Indicates a cumulative node is configured."; | | presence "Indicates a cumulative node is configured."; |
| description | | description |
| "Send cumulative community dmz link bandwidth of all multipaths to ebgp neighbor"; | | "Send cumulative community dmz link bandwidth of all multipaths to ebgp neighbor"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ebgp-send-extcommunity-dmz from being inherited from parent"; | | "Prevent ebgp-send-extcommunity-dmz from being inherited from parent"; |
| } | | } |
| } | | } |
| container evpn-link-bandwidth { | | container evpn-link-bandwidth { |
| presence "Indicates a evpn-link-bandwidth node is configured."; | | presence "Indicates a evpn-link-bandwidth node is configured."; |
| description | | description |
| "Propagate the EVPN link bandwidth"; | | "Propagate the EVPN link bandwidth"; |
| leaf per-path { | | leaf per-path { |
| type uint32 { | | type uint32 { |
| range "1..1000" { | | range "1..1000" { |
| description | | description |
| "Unit per-path"; | | "Unit per-path"; |
| } | | } |
| } | | } |
| description | | description |
| "EVPN Link Bandwidth using per-path generalized unit"; | | "EVPN Link Bandwidth using per-path generalized unit"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent evpn-link-bandwidth from being inherited from the parent"; | | "Prevent evpn-link-bandwidth from being inherited from the parent"; |
| } | | } |
| } | | } |
| container ttl-security { | | container ttl-security { |
| presence "Indicates a ttl-security node is configured."; | | presence "Indicates a ttl-security node is configured."; |
| description | | description |
| "Enable EBGP TTL security"; | | "Enable EBGP TTL security"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ttl-security from being inherited from the parent"; | | "Prevent ttl-security from being inherited from the parent"; |
| } | | } |
| } | | } |
| container session-open-mode { | | container session-open-mode { |
| description | | description |
| "Establish BGP session using this TCP open mode"; | | "Establish BGP session using this TCP open mode"; |
| container active-only { | | container active-only { |
| must "not(../passive-only or ../both)"; | | must "not(../passive-only or ../both)"; |
| presence "Indicates a active-only node is configured."; | | presence "Indicates a active-only node is configured."; |
| description | | description |
| "Active only"; | | "Active only"; |
| } | | } |
| container passive-only { | | container passive-only { |
| must "not(../active-only or ../both)"; | | must "not(../active-only or ../both)"; |
| presence "Indicates a passive-only node is configured."; | | presence "Indicates a passive-only node is configured."; |
| description | | description |
| "Passive only"; | | "Passive only"; |
| } | | } |
| container both { | | container both { |
| must "not(../active-only or ../passive-only)"; | | must "not(../active-only or ../passive-only)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Prevent session-open-mode being inherited from the parent"; | | "Prevent session-open-mode being inherited from the parent"; |
| } | | } |
| } | | } |
| leaf dscp { | | leaf dscp { |
| type enumeration { | | type enumeration { |
| enum "default" { | | enum "default" { |
| value 0; | | value 0; |
| description | | description |
| "Set packets with default dscp (000000)"; | | "Set packets with default dscp (000000)"; |
| } | | } |
| enum "cs1" { | | enum "cs1" { |
| value 8; | | value 8; |
| description | | description |
| "Set packets with CS1(precedence 1) dscp (001000)"; | | "Set packets with CS1(precedence 1) dscp (001000)"; |
| } | | } |
| enum "af11" { | | enum "af11" { |
| value 10; | | value 10; |
| description | | description |
| "Set packets with AF11 dscp (001010)"; | | "Set packets with AF11 dscp (001010)"; |
| } | | } |
| enum "af12" { | | enum "af12" { |
| value 12; | | value 12; |
| description | | description |
| "Set packets with AF12 dscp (001100)"; | | "Set packets with AF12 dscp (001100)"; |
| } | | } |
| enum "af13" { | | enum "af13" { |
| value 14; | | value 14; |
| description | | description |
| "Set packets with AF13 dscp (001110)"; | | "Set packets with AF13 dscp (001110)"; |
| } | | } |
| enum "cs2" { | | enum "cs2" { |
| value 16; | | value 16; |
| description | | description |
| "Set packets with CS2(precedence 2) dscp (010000)"; | | "Set packets with CS2(precedence 2) dscp (010000)"; |
| } | | } |
| enum "af21" { | | enum "af21" { |
| value 18; | | value 18; |
| description | | description |
| "Set packets with AF21 dscp (010010)"; | | "Set packets with AF21 dscp (010010)"; |
| } | | } |
| enum "af22" { | | enum "af22" { |
| value 20; | | value 20; |
| description | | description |
| "Set packets with AF22 dscp (010100)"; | | "Set packets with AF22 dscp (010100)"; |
| } | | } |
| enum "af23" { | | enum "af23" { |
| value 22; | | value 22; |
| description | | description |
| "Set packets with AF23 dscp (010110)"; | | "Set packets with AF23 dscp (010110)"; |
| } | | } |
| enum "cs3" { | | enum "cs3" { |
| value 24; | | value 24; |
| description | | description |
| "Set packets with CS3(precedence 3) dscp (011000)"; | | "Set packets with CS3(precedence 3) dscp (011000)"; |
| } | | } |
| enum "af31" { | | enum "af31" { |
| value 26; | | value 26; |
| description | | description |
| "Set packets with AF31 dscp (011010)"; | | "Set packets with AF31 dscp (011010)"; |
| } | | } |
| enum "af32" { | | enum "af32" { |
| value 28; | | value 28; |
| description | | description |
| "Set packets with AF32 dscp (011100)"; | | "Set packets with AF32 dscp (011100)"; |
| } | | } |
| enum "af33" { | | enum "af33" { |
| value 30; | | value 30; |
| description | | description |
| "Set packets with AF33 dscp (011110)"; | | "Set packets with AF33 dscp (011110)"; |
| } | | } |
| enum "cs4" { | | enum "cs4" { |
| value 32; | | value 32; |
| description | | description |
| "Set packets with CS4(precedence 4) dscp (100000)"; | | "Set packets with CS4(precedence 4) dscp (100000)"; |
| } | | } |
| enum "af41" { | | enum "af41" { |
| value 34; | | value 34; |
| description | | description |
| "Set packets with AF41 dscp (100010)"; | | "Set packets with AF41 dscp (100010)"; |
| } | | } |
| enum "af42" { | | enum "af42" { |
| value 36; | | value 36; |
| description | | description |
| "Set packets with AF42 dscp (100100)"; | | "Set packets with AF42 dscp (100100)"; |
| } | | } |
| enum "af43" { | | enum "af43" { |
| value 38; | | value 38; |
| description | | description |
| "Set packets with AF43 dscp (100110)"; | | "Set packets with AF43 dscp (100110)"; |
| } | | } |
| enum "cs5" { | | enum "cs5" { |
| value 40; | | value 40; |
| description | | description |
| "Set packets with CS5(precedence 5) dscp (101000)"; | | "Set packets with CS5(precedence 5) dscp (101000)"; |
| } | | } |
| enum "ef" { | | enum "ef" { |
| value 46; | | value 46; |
| description | | description |
| "Set packets with EF dscp (101110)"; | | "Set packets with EF dscp (101110)"; |
| } | | } |
| enum "cs6" { | | enum "cs6" { |
| value 48; | | value 48; |
| description | | description |
| "Set packets with CS6(precedence 6) dscp (110000)"; | | "Set packets with CS6(precedence 6) dscp (110000)"; |
| } | | } |
| enum "cs7" { | | enum "cs7" { |
| value 56; | | value 56; |
| description | | description |
| "Set packets with CS7(precedence 7) dscp (111000)"; | | "Set packets with CS7(precedence 7) dscp (111000)"; |
| } | | } |
| } | | } |
| description | | description |
| "Set IP DSCP (DiffServ CodePoint)"; | | "Set IP DSCP (DiffServ CodePoint)"; |
| } | | } |
| leaf precedence { | | leaf precedence { |
| type enumeration { | | type enumeration { |
| enum "routine" { | | enum "routine" { |
| value 0; | | value 0; |
| description | | description |
| "Set packets with routine precedence (0)"; | | "Set packets with routine precedence (0)"; |
| } | | } |
| enum "priority" { | | enum "priority" { |
| value 1; | | value 1; |
| description | | description |
| "Set packets with priority precedence (1)"; | | "Set packets with priority precedence (1)"; |
| } | | } |
| enum "immediate" { | | enum "immediate" { |
| value 2; | | value 2; |
| description | | description |
| "Set packets with immediate precedence (2)"; | | "Set packets with immediate precedence (2)"; |
| } | | } |
| enum "flash" { | | enum "flash" { |
| value 3; | | value 3; |
| description | | description |
| "Set packets with flash precedence (3)"; | | "Set packets with flash precedence (3)"; |
| } | | } |
| enum "flash-override" { | | enum "flash-override" { |
| value 4; | | value 4; |
| description | | description |
| "Set packets with flash override precedence (4)"; | | "Set packets with flash override precedence (4)"; |
| } | | } |
| enum "critical" { | | enum "critical" { |
| value 5; | | value 5; |
| description | | description |
| "Set packets with critical precedence (5)"; | | "Set packets with critical precedence (5)"; |
| } | | } |
| enum "internet" { | | enum "internet" { |
| value 6; | | value 6; |
| description | | description |
| "Set packets with internetwork control precedence (6)"; | | "Set packets with internetwork control precedence (6)"; |
| } | | } |
| enum "network" { | | enum "network" { |
| value 7; | | value 7; |
| description | | description |
| "Set packets with network control precedence (7)"; | | "Set packets with network control precedence (7)"; |
| } | | } |
| } | | } |
| description | | description |
| "Set precedence"; | | "Set precedence"; |
| } | | } |
| container capability { | | container capability { |
| description | | description |
| "Advertise capability to the peer"; | | "Advertise capability to the peer"; |
| container suppress { | | container suppress { |
| description | | description |
| "Suppress advertising capability to the peer "; | | "Suppress advertising capability to the peer "; |
| container four-byte-as { | | container four-byte-as { |
| presence "Indicates a four-byte-as node is configured."; | | presence "Indicates a four-byte-as node is configured."; |
| description | | description |
| "4-byte-as capability"; | | "4-byte-as capability"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent capability suppress 4-type-as being inherited from the parent"; | | "Prevent capability suppress 4-type-as being inherited from the parent"; |
| } | | } |
| } | | } |
| container all { | | container all { |
| presence "Indicates a all node is configured."; | | presence "Indicates a all node is configured."; |
| description | | description |
| "All capabilities"; | | "All capabilities"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| container extended-nexthop-encoding { | | container extended-nexthop-encoding { |
| presence "Indicates a extended-nexthop-encoding node is configured."; | | presence "Indicates a extended-nexthop-encoding node is configured."; |
| description | | description |
| "Extended-nexthop-encoding capabilities (IETF RFC 5549)"; | | "Extended-nexthop-encoding capabilities (IETF RFC 5549)"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| } | | } |
| container additional-paths { | | container additional-paths { |
| description | | description |
| "Additional paths capability"; | | "Additional paths capability"; |
| container send { | | container send { |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Additional paths Send capability"; | | "Additional paths Send capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise additional paths Send capability"; | | "Do not advertise additional paths Send capability"; |
| } | | } |
| } | | } |
| container receive { | | container receive { |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Additional paths Receive capability"; | | "Additional paths Receive capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise additional paths Receive capability"; | | "Do not advertise additional paths Receive capability"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container graceful-restart { | | container graceful-restart { |
| presence "Indicates a graceful-restart node is configured."; | | presence "Indicates a graceful-restart node is configured."; |
| description | | description |
| "Enable graceful restart support for this neighbor"; | | "Enable graceful restart support for this neighbor"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable graceful restart support for this neighbor"; | | "Disable graceful restart support for this neighbor"; |
| } | | } |
| leaf restart-time { | | leaf restart-time { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart time advertised to the neighbor"; | | "Restart time advertised to the neighbor"; |
| } | | } |
| leaf stalepath-time { | | leaf stalepath-time { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum time to wait for restart of GR capable peer"; | | "Maximum time to wait for restart of GR capable peer"; |
| } | | } |
| } | | } |
| container enforce-first-as { | | container enforce-first-as { |
| presence "Indicates a enforce-first-as node is configured."; | | presence "Indicates a enforce-first-as node is configured."; |
| description | | description |
| "Enforce the first AS for EBGP routes"; | | "Enforce the first AS for EBGP routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not enforce the first AS for EBGP routes"; | | "Do not enforce the first AS for EBGP routes"; |
| } | | } |
| } | | } |
| leaf maximum-peers { | | leaf maximum-peers { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Maximum number of peers"; | | "Maximum number of peers"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum dynamic neighbors"; | | "Maximum dynamic neighbors"; |
| } | | } |
| leaf idle-watch-time { | | leaf idle-watch-time { |
| type uint32 { | | type uint32 { |
| range "30..1800" { | | range "30..1800" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum time to wait for deletion of IDLE state dynamic peer"; | | "Maximum time to wait for deletion of IDLE state dynamic peer"; |
| } | | } |
| container egress-engineering { | | container egress-engineering { |
| presence "Indicates a egress-engineering node is configured."; | | presence "Indicates a egress-engineering node is configured."; |
| description | | description |
| "Enable egress peer engineering for this neighbor"; | | "Enable egress peer engineering for this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit egress-engineering from the parent"; | | "Do not inherit egress-engineering from the parent"; |
| } | | } |
| } | | } |
| container peer-sets { | | container peer-sets { |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| list peer-set { | | list peer-set { |
| key "peer-set-id"; | | key "peer-set-id"; |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| leaf peer-set-id { | | leaf peer-set-id { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Identity value of peer-set"; | | "Identity value of peer-set"; |
| } | | } |
| } | | } |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| } | | } |
| } | | } |
| } | | } |
| container peer-node-sid { | | container peer-node-sid { |
| description | | description |
| "Assign this neighbor a manual SID for egress peer engineering"; | | "Assign this neighbor a manual SID for egress peer engineering"; |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..1033575" { | | range "0..1033575" { |
| description | | description |
| "Segment Index to be assigned to this peer. The index will be off SRLB | | "Segment Index to be assigned to this peer. The index will be off SRLB |
| Note: This imaximum index configurable in dynaminc SRLB range. | | Note: This imaximum index configurable in dynaminc SRLB range. |
| Since SRLB ca dynamic range, actual maximum index can vary. | | Since SRLB ca dynamic range, actual maximum index can vary. |
| So please lothe currently configured SRLB range"; | | So please lothe currently configured SRLB range"; |
| } | | } |
| } | | } |
| description | | description |
| "Segment Index value which is offset of SRLB"; | | "Segment Index value which is offset of SRLB"; |
| } | | } |
| } | | } |
| container ao { | | container ao { |
| description | | description |
| "Enable Authentiation Option"; | | "Enable Authentiation Option"; |
| leaf key-chain-name { | | leaf key-chain-name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| } | | } |
| must "not(../inheritance-disable) and (../include-tcp-options/enable or ../include-tcp-options/disable)"; | | must "not(../inheritance-disable) and (../include-tcp-options/enable or ../include-tcp-options/disable)"; |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| container include-tcp-options { | | container include-tcp-options { |
| description | | description |
| "Include/Exclude other TCP options in the header"; | | "Include/Exclude other TCP options in the header"; |
| container enable { | | container enable { |
| must "not(../disable or ../../inheritance-disable)"; | | must "not(../disable or ../../inheritance-disable)"; |
| presence "Indicates a enable node is configured."; | | presence "Indicates a enable node is configured."; |
| description | | description |
| "Include other TCP options in the header"; | | "Include other TCP options in the header"; |
| } | | } |
| container disable { | | container disable { |
| must "not(../enable or ../../inheritance-disable)"; | | must "not(../enable or ../../inheritance-disable)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Exclude other TCP options in the header"; | | "Exclude other TCP options in the header"; |
| } | | } |
| container accept-ao-mismatch-connection { | | container accept-ao-mismatch-connection { |
| must "../enable or ../disable"; | | must "../enable or ../disable"; |
| presence "Indicates a accept-ao-mismatch-connection node is configured."; | | presence "Indicates a accept-ao-mismatch-connection node is configured."; |
| description | | description |
| "Accept new connection even if AO mismatched"; | | "Accept new connection even if AO mismatched"; |
| } | | } |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../key-chain-name)"; | | must "not(../key-chain-name)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent keychain from being inherited from parent"; | | "Prevent keychain from being inherited from parent"; |
| } | | } |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validation { | | container validation { |
| description | | description |
| "BGP origin-AS validation knobs"; | | "BGP origin-AS validation knobs"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable RPKI origin-AS validation"; | | "Disable RPKI origin-AS validation"; |
| } | | } |
| } | | } |
| } | | } |
| container bestpath { | | container bestpath { |
| description | | description |
| "Change default route selection criteria"; | | "Change default route selection criteria"; |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container allow { | | container allow { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container invalid { | | container invalid { |
| presence "Indicates a invalid node is configured."; | | presence "Indicates a invalid node is configured."; |
| description | | description |
| "BGP bestpath selection will allow 'invalid' origin-AS"; | | "BGP bestpath selection will allow 'invalid' origin-AS"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf maximum-prefix-restart-time { | | leaf maximum-prefix-restart-time { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Maximum prefix restart time (seconds)"; | | "Maximum prefix restart time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart timer interval"; | | "Restart timer interval"; |
| } | | } |
| } | | } |
| list neighbor-range { | | list neighbor-range { |
| key "neighbor-address prefix-length"; | | key "neighbor-address prefix-length"; |
| description | | description |
| "Neighbor address"; | | "Neighbor address"; |
| leaf neighbor-address { | | leaf neighbor-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "Neighbor address"; | | "Neighbor address"; |
| } | | } |
| leaf prefix-length { | | leaf prefix-length { |
| type uint32 { | | type uint32 { |
| range "0..127"; | | range "0..127"; |
| } | | } |
| description | | description |
| "Prefix length"; | | "Prefix length"; |
| } | | } |
| container address-families { | | container address-families { |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| list address-family { | | list address-family { |
| key "af-name"; | | key "af-name"; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| leaf af-name { | | leaf af-name { |
| type Bgp-address-family; | | type Bgp-address-family; |
| description | | description |
| "Enter Address Family command mode"; | | "Enter Address Family command mode"; |
| } | | } |
| container use { | | container use { |
| description | | description |
| "Inherit configuration for this address-family from a group"; | | "Inherit configuration for this address-family from a group"; |
| leaf af-group { | | leaf af-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "AF group name"; | | "AF group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit configuration for this address-family from an af-group"; | | "Inherit configuration for this address-family from an af-group"; |
| } | | } |
| } | | } |
| container capability { | | container capability { |
| description | | description |
| "Advertise capability to the peer"; | | "Advertise capability to the peer"; |
| container orf { | | container orf { |
| description | | description |
| "Advertise ORF capability to the peer"; | | "Advertise ORF capability to the peer"; |
| container prefix { | | container prefix { |
| description | | description |
| "Advertise address prefix ORF capability to this neighbor"; | | "Advertise address prefix ORF capability to this neighbor"; |
| container receive { | | container receive { |
| must "not(../send or ../both or ../none)"; | | must "not(../send or ../both or ../none)"; |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Capability to RECEIVE the ORF from this neighbor"; | | "Capability to RECEIVE the ORF from this neighbor"; |
| } | | } |
| container send { | | container send { |
| must "not(../receive or ../both or ../none)"; | | must "not(../receive or ../both or ../none)"; |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Capability to SEND the ORF to this neighbor"; | | "Capability to SEND the ORF to this neighbor"; |
| } | | } |
| container both { | | container both { |
| must "not(../receive or ../send or ../none)"; | | must "not(../receive or ../send or ../none)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Capability to RECEIVE and SEND the ORF from/to this neighbor"; | | "Capability to RECEIVE and SEND the ORF from/to this neighbor"; |
| } | | } |
| container none { | | container none { |
| must "not(../receive or ../send or ../both)"; | | must "not(../receive or ../send or ../both)"; |
| presence "Indicates a none node is configured."; | | presence "Indicates a none node is configured."; |
| description | | description |
| "No capability to RECEIVE or SEND the ORF from/to this neighbor"; | | "No capability to RECEIVE or SEND the ORF from/to this neighbor"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container default-originate { | | container default-originate { |
| presence "Indicates a default-originate node is configured."; | | presence "Indicates a default-originate node is configured."; |
| description | | description |
| "Originate default route to this neighbor"; | | "Originate default route to this neighbor"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy to specify criteria to originate default"; | | "Route policy to specify criteria to originate default"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../route-policy)"; | | must "not(../route-policy)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent default-originate being inherited from a parent group"; | | "Prevent default-originate being inherited from a parent group"; |
| } | | } |
| } | | } |
| container maximum-prefix { | | container maximum-prefix { |
| presence "Indicates a maximum-prefix node is configured."; | | presence "Indicates a maximum-prefix node is configured."; |
| description | | description |
| "Maximum number of prefixes to accept from this peer"; | | "Maximum number of prefixes to accept from this peer"; |
| leaf prefix-limit { | | leaf prefix-limit { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "maximum no. of prefix limit"; | | "maximum no. of prefix limit"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Maximum number of prefixes to accept from this peer"; | | "Maximum number of prefixes to accept from this peer"; |
| } | | } |
| leaf threshold { | | leaf threshold { |
| type uint32 { | | type uint32 { |
| range "1..100" { | | range "1..100" { |
| description | | description |
| "Threshold value (%) at which to generate a warning msg"; | | "Threshold value (%) at which to generate a warning msg"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Threshold value (%) at which to generate a warning msg"; | | "Threshold value (%) at which to generate a warning msg"; |
| } | | } |
| container warning-only { | | container warning-only { |
| presence "Indicates a warning-only node is configured."; | | presence "Indicates a warning-only node is configured."; |
| description | | description |
| "Only give warning message when limit is exceeded"; | | "Only give warning message when limit is exceeded"; |
| } | | } |
| leaf restart { | | leaf restart { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Time interval (min) after which peering session will be reestablished"; | | "Time interval (min) after which peering session will be reestablished"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart time interval"; | | "Restart time interval"; |
| } | | } |
| container discard-extra-paths { | | container discard-extra-paths { |
| presence "Indicates a discard-extra-paths node is configured."; | | presence "Indicates a discard-extra-paths node is configured."; |
| description | | description |
| "Discard extra paths when limit is exceeded"; | | "Discard extra paths when limit is exceeded"; |
| } | | } |
| } | | } |
| leaf optimal-route-reflection { | | leaf optimal-route-reflection { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure optiomal-route-reflection for this neighbor"; | | "Configure optiomal-route-reflection for this neighbor"; |
| } | | } |
| container next-hop-self { | | container next-hop-self { |
| presence "Indicates a next-hop-self node is configured."; | | presence "Indicates a next-hop-self node is configured."; |
| description | | description |
| "Disable the next hop calculation for this neighbor"; | | "Disable the next hop calculation for this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent next-hop-self from being inherited from the parent"; | | "Prevent next-hop-self from being inherited from the parent"; |
| } | | } |
| } | | } |
| container next-hop-unchanged { | | container next-hop-unchanged { |
| presence "Indicates a next-hop-unchanged node is configured."; | | presence "Indicates a next-hop-unchanged node is configured."; |
| description | | description |
| "Do not overwrite next hop before advertising to eBGP peers"; | | "Do not overwrite next hop before advertising to eBGP peers"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent next-hop-unchanged from being inherited from the parent"; | | "Prevent next-hop-unchanged from being inherited from the parent"; |
| } | | } |
| } | | } |
| container slow-peer { | | container slow-peer { |
| description | | description |
| "Configure this neighbor as slow-peer"; | | "Configure this neighbor as slow-peer"; |
| container static { | | container static { |
| must "not(../dynamic)"; | | must "not(../dynamic)"; |
| presence "Indicates a static node is configured."; | | presence "Indicates a static node is configured."; |
| description | | description |
| "Configure this neighbor as static slow-peer"; | | "Configure this neighbor as static slow-peer"; |
| } | | } |
| container dynamic { | | container dynamic { |
| must "not(../static)"; | | must "not(../static)"; |
| presence "Indicates a dynamic node is configured."; | | presence "Indicates a dynamic node is configured."; |
| description | | description |
| "Configure this neighbor as dynamic slow-peer"; | | "Configure this neighbor as dynamic slow-peer"; |
| leaf threshold { | | leaf threshold { |
| type uint16 { | | type uint16 { |
| range "120..3600" { | | range "120..3600" { |
| description | | description |
| "Threshold (in seconds) to detect this neighbor as slow-peer"; | | "Threshold (in seconds) to detect this neighbor as slow-peer"; |
| } | | } |
| } | | } |
| description | | description |
| "Threshold (in seconds) to detect this neighbor as slow-peer"; | | "Threshold (in seconds) to detect this neighbor as slow-peer"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable dynamic slow-peer"; | | "Disable dynamic slow-peer"; |
| } | | } |
| } | | } |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validation { | | container validation { |
| description | | description |
| "BGP origin-AS validation knobs"; | | "BGP origin-AS validation knobs"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable RPKI origin-AS validation"; | | "Disable RPKI origin-AS validation"; |
| } | | } |
| } | | } |
| } | | } |
| container bestpath { | | container bestpath { |
| description | | description |
| "Change default route selection criteria"; | | "Change default route selection criteria"; |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container allow { | | container allow { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container invalid { | | container invalid { |
| presence "Indicates a invalid node is configured."; | | presence "Indicates a invalid node is configured."; |
| description | | description |
| "BGP bestpath selection will allow 'invalid' origin-AS"; | | "BGP bestpath selection will allow 'invalid' origin-AS"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container route-policy { | | container route-policy { |
| description | | description |
| "Apply route policy to neighbor"; | | "Apply route policy to neighbor"; |
| leaf in { | | leaf in { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Apply route policy to inbound routes"; | | "Apply route policy to inbound routes"; |
| } | | } |
| leaf out { | | leaf out { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Apply route policy to outbound routes"; | | "Apply route policy to outbound routes"; |
| } | | } |
| container retention { | | container retention { |
| description | | description |
| "Apply retention policy to inbound routes"; | | "Apply retention policy to inbound routes"; |
| leaf route-policy-name { | | leaf route-policy-name { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| must "../retention-time"; | | must "../retention-time"; |
| description | | description |
| "Apply retention policy to inbound routes"; | | "Apply retention policy to inbound routes"; |
| } | | } |
| leaf retention-time { | | leaf retention-time { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| must "../route-policy-name"; | | must "../route-policy-name"; |
| description | | description |
| "Retention-time for this neighbor"; | | "Retention-time for this neighbor"; |
| } | | } |
| } | | } |
| } | | } |
| container orf { | | container orf { |
| description | | description |
| "Specify ORF and inbound filtering criteria"; | | "Specify ORF and inbound filtering criteria"; |
| leaf route-policy { | | leaf route-policy { |
| type xr:Route-policy-name; | | type xr:Route-policy-name; |
| description | | description |
| "Route policy to specify ORF and inbound filter"; | | "Route policy to specify ORF and inbound filter"; |
| } | | } |
| } | | } |
| container replace-private-as { | | container replace-private-as { |
| presence "Indicates a replace-private-as node is configured."; | | presence "Indicates a replace-private-as node is configured."; |
| description | | description |
| "Replace private AS number from outbound updates"; | | "Replace private AS number from outbound updates"; |
| container internal { | | container internal { |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| } | | } |
| container remove-private-as { | | container remove-private-as { |
| presence "Indicates a remove-private-as node is configured."; | | presence "Indicates a remove-private-as node is configured."; |
| description | | description |
| "Remove private AS number from outbound updates"; | | "Remove private AS number from outbound updates"; |
| container entire-aspath { | | container entire-aspath { |
| must "not(../inheritance-disable or ../internal)"; | | must "not(../inheritance-disable or ../internal)"; |
| presence "Indicates a entire-aspath node is configured."; | | presence "Indicates a entire-aspath node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../entire-aspath or ../internal)"; | | must "not(../entire-aspath or ../internal)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| container internal { | | container internal { |
| must "not(../entire-aspath or ../inheritance-disable)"; | | must "not(../entire-aspath or ../inheritance-disable)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container remove-private-as-inbound { | | container remove-private-as-inbound { |
| must "not(entire-aspath and inheritance-disable)"; | | must "not(entire-aspath and inheritance-disable)"; |
| presence "Indicates a inbound node is configured."; | | presence "Indicates a inbound node is configured."; |
| description | | description |
| "Remove private AS number from inbound updates"; | | "Remove private AS number from inbound updates"; |
| container entire-aspath { | | container entire-aspath { |
| presence "Indicates a entire-aspath node is configured."; | | presence "Indicates a entire-aspath node is configured."; |
| description | | description |
| "remove only if all ASes in the path are private"; | | "remove only if all ASes in the path are private"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent remove-private-AS from being inherited from the parent"; | | "Prevent remove-private-AS from being inherited from the parent"; |
| } | | } |
| } | | } |
| container enforce-multiple-labels { | | container enforce-multiple-labels { |
| presence "Indicates a enforce-multiple-labels node is configured."; | | presence "Indicates a enforce-multiple-labels node is configured."; |
| description | | description |
| "Enforce support for multiple labels (requires manual session flap)"; | | "Enforce support for multiple labels (requires manual session flap)"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent enforce-multiple-labels from being inherited from the parent"; | | "Prevent enforce-multiple-labels from being inherited from the parent"; |
| } | | } |
| } | | } |
| container route-reflector-client { | | container route-reflector-client { |
| presence "Indicates a route-reflector-client node is configured."; | | presence "Indicates a route-reflector-client node is configured."; |
| description | | description |
| "Configure a neighbor as Route Reflector client"; | | "Configure a neighbor as Route Reflector client"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent route-reflector-client from being inherited from the parent"; | | "Prevent route-reflector-client from being inherited from the parent"; |
| } | | } |
| } | | } |
| container accept-route-legacy-rt { | | container accept-route-legacy-rt { |
| presence "Indicates a accept-route-legacy-rt node is configured."; | | presence "Indicates a accept-route-legacy-rt node is configured."; |
| description | | description |
| "Configure a neighbor to support legacy PE for RT-Constraint AF"; | | "Configure a neighbor to support legacy PE for RT-Constraint AF"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent accept-route-legacy-RT from being inherited from the parent"; | | "Prevent accept-route-legacy-RT from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-community-ebgp { | | container send-community-ebgp { |
| presence "Indicates a send-community-ebgp node is configured."; | | presence "Indicates a send-community-ebgp node is configured."; |
| description | | description |
| "Send community attribute to this external neighbor"; | | "Send community attribute to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-community-ebgp from being inherited from the parent"; | | "Prevent send-community-ebgp from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-community-gshut-ebgp { | | container send-community-gshut-ebgp { |
| presence "Indicates a send-community-gshut-ebgp node is configured."; | | presence "Indicates a send-community-gshut-ebgp node is configured."; |
| description | | description |
| "Allow the g-shut community to be sent to this external neighbor"; | | "Allow the g-shut community to be sent to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-community-gshut-ebgp from being inherited from the parent"; | | "Prevent send-community-gshut-ebgp from being inherited from the parent"; |
| } | | } |
| } | | } |
| container send-extended-community-ebgp { | | container send-extended-community-ebgp { |
| presence "Indicates a send-extended-community-ebgp node is configured."; | | presence "Indicates a send-extended-community-ebgp node is configured."; |
| description | | description |
| "Send extended community attribute to this external neighbor"; | | "Send extended community attribute to this external neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent send-extended-community-ebgp from being inherited from parent"; | | "Prevent send-extended-community-ebgp from being inherited from parent"; |
| } | | } |
| } | | } |
| container soft-reconfiguration { | | container soft-reconfiguration { |
| description | | description |
| "Per neighbor soft reconfiguration"; | | "Per neighbor soft reconfiguration"; |
| container inbound { | | container inbound { |
| presence "Indicates a inbound node is configured."; | | presence "Indicates a inbound node is configured."; |
| description | | description |
| "Allow inbound soft reconfiguration for this neighbor"; | | "Allow inbound soft reconfiguration for this neighbor"; |
| container rpki-dropped-only { | | container rpki-dropped-only { |
| must "not(../rpki-tested-only or ../always or ../inheritance-disable)"; | | must "not(../rpki-tested-only or ../always or ../inheritance-disable)"; |
| presence "Indicates a rpki-dropped-only node is configured."; | | presence "Indicates a rpki-dropped-only node is configured."; |
| description | | description |
| "Use soft-reconfig, for paths dropped by route-policy which have RPKI validity state check"; | | "Use soft-reconfig, for paths dropped by route-policy which have RPKI validity state check"; |
| } | | } |
| container rpki-tested-only { | | container rpki-tested-only { |
| must "not(../rpki-dropped-only or ../always or ../inheritance-disable)"; | | must "not(../rpki-dropped-only or ../always or ../inheritance-disable)"; |
| presence "Indicates a rpki-tested-only node is configured."; | | presence "Indicates a rpki-tested-only node is configured."; |
| description | | description |
| "Use soft-reconfig for paths tested or dropped by route-policy which have RPKI validity state check"; | | "Use soft-reconfig for paths tested or dropped by route-policy which have RPKI validity state check"; |
| } | | } |
| container always { | | container always { |
| must "not(../rpki-dropped-only or ../rpki-tested-only or ../inheritance-disable)"; | | must "not(../rpki-dropped-only or ../rpki-tested-only or ../inheritance-disable)"; |
| presence "Indicates a always node is configured."; | | presence "Indicates a always node is configured."; |
| description | | description |
| "Always use soft reconfig, even if route refresh is supported"; | | "Always use soft reconfig, even if route refresh is supported"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../rpki-dropped-only or ../rpki-tested-only or ../always)"; | | must "not(../rpki-dropped-only or ../rpki-tested-only or ../always)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent soft-reconfiguration from being inherited from the parent"; | | "Prevent soft-reconfiguration from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container update { | | container update { |
| description | | description |
| "BGP out bound message"; | | "BGP out bound message"; |
| container out { | | container out { |
| description | | description |
| "BGP out bound message handling"; | | "BGP out bound message handling"; |
| container originator-loopcheck { | | container originator-loopcheck { |
| presence "Indicates a originator-loopcheck node is configured."; | | presence "Indicates a originator-loopcheck node is configured."; |
| description | | description |
| "Loop check for same originator which sent the route"; | | "Loop check for same originator which sent the route"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable originator loop check"; | | "Disable originator loop check"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container advertise { | | container advertise { |
| description | | description |
| "Per neighbor advertisement options"; | | "Per neighbor advertisement options"; |
| container permanent-network { | | container permanent-network { |
| presence "Indicates a permanent-network node is configured."; | | presence "Indicates a permanent-network node is configured."; |
| description | | description |
| "Allow permanent networks for this neighbor"; | | "Allow permanent networks for this neighbor"; |
| } | | } |
| container local-labeled-route { | | container local-labeled-route { |
| presence "Indicates a local-labeled-route node is configured."; | | presence "Indicates a local-labeled-route node is configured."; |
| description | | description |
| "Advertisement of routes with local-label"; | | "Advertisement of routes with local-label"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise routes with local-label via Unicast SAFI"; | | "Do not advertise routes with local-label via Unicast SAFI"; |
| } | | } |
| } | | } |
| } | | } |
| leaf weight { | | leaf weight { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "default weight"; | | "default weight"; |
| } | | } |
| } | | } |
| description | | description |
| "Set default weight for routes from this neighbor"; | | "Set default weight for routes from this neighbor"; |
| } | | } |
| container allowas-in { | | container allowas-in { |
| presence "Indicates a allowas-in node is configured."; | | presence "Indicates a allowas-in node is configured."; |
| description | | description |
| "Allow as-path with my AS present in it"; | | "Allow as-path with my AS present in it"; |
| leaf number-of-occurences { | | leaf number-of-occurences { |
| type uint32 { | | type uint32 { |
| range "1..10" { | | range "1..10" { |
| description | | description |
| "Number of occurences of AS number"; | | "Number of occurences of AS number"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of occurences of AS number"; | | "Number of occurences of AS number"; |
| } | | } |
| } | | } |
| container allowconfedas-in { | | container allowconfedas-in { |
| presence "Indicates a allowconfedas-in node is configured."; | | presence "Indicates a allowconfedas-in node is configured."; |
| description | | description |
| "Allow as-path with my confederation AS present in it"; | | "Allow as-path with my confederation AS present in it"; |
| leaf number-of-occurences { | | leaf number-of-occurences { |
| type uint32 { | | type uint32 { |
| range "1..10" { | | range "1..10" { |
| description | | description |
| "Number of occurences of confederation AS number"; | | "Number of occurences of confederation AS number"; |
| } | | } |
| } | | } |
| description | | description |
| "Number of occurences of confederation AS number"; | | "Number of occurences of confederation AS number"; |
| } | | } |
| } | | } |
| container long-lived-graceful-restart { | | container long-lived-graceful-restart { |
| description | | description |
| "Enable long lived graceful restart support"; | | "Enable long lived graceful restart support"; |
| container stale-time { | | container stale-time { |
| description | | description |
| "Maximum time to wait before purging long-lived stale routes"; | | "Maximum time to wait before purging long-lived stale routes"; |
| leaf send { | | leaf send { |
| type uint32 { | | type uint32 { |
| range "0..16777215" { | | range "0..16777215" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Stale-time sent in LLGR Capability"; | | "Stale-time sent in LLGR Capability"; |
| } | | } |
| leaf accept { | | leaf accept { |
| type uint32 { | | type uint32 { |
| range "0..16777215" { | | range "0..16777215" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum stale-time acceptable from neighbor"; | | "Maximum stale-time acceptable from neighbor"; |
| } | | } |
| } | | } |
| container capable { | | container capable { |
| presence "Indicates a capable node is configured."; | | presence "Indicates a capable node is configured."; |
| description | | description |
| "Treat neighbor as LLGR capable"; | | "Treat neighbor as LLGR capable"; |
| } | | } |
| } | | } |
| container as-override { | | container as-override { |
| presence "Indicates a as-override node is configured."; | | presence "Indicates a as-override node is configured."; |
| description | | description |
| "Override matching AS-number while sending update"; | | "Override matching AS-number while sending update"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent as-override from being inherited from the parent"; | | "Prevent as-override from being inherited from the parent"; |
| } | | } |
| } | | } |
| container aigp { | | container aigp { |
| presence "Indicates a aigp node is configured."; | | presence "Indicates a aigp node is configured."; |
| description | | description |
| "Enable AIGP for this neighbor "; | | "Enable AIGP for this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable AIGP"; | | "Disable AIGP"; |
| } | | } |
| } | | } |
| container aigp-send { | | container aigp-send { |
| description | | description |
| "Copy AIGP"; | | "Copy AIGP"; |
| container cost-community { | | container cost-community { |
| description | | description |
| "Send AIGP value in Cost Community"; | | "Send AIGP value in Cost Community"; |
| leaf cost-community-id { | | leaf cost-community-id { |
| type uint32 { | | type uint32 { |
| range "0..255" { | | range "0..255" { |
| description | | description |
| "Cost community ID"; | | "Cost community ID"; |
| } | | } |
| } | | } |
| must "not(../disable)"; | | must "not(../disable)"; |
| description | | description |
| "Cost community ID"; | | "Cost community ID"; |
| } | | } |
| container poi { | | container poi { |
| must "(igp-cost or pre-bestpath) and not(igp-cost and pre-bestpath)"; | | must "(igp-cost or pre-bestpath) and not(igp-cost and pre-bestpath)"; |
| presence "Indicates a poi node is configured."; | | presence "Indicates a poi node is configured."; |
| description | | description |
| "Point of insertion for bestpath calculation"; | | "Point of insertion for bestpath calculation"; |
| container igp-cost { | | container igp-cost { |
| presence "Indicates a igp-cost node is configured."; | | presence "Indicates a igp-cost node is configured."; |
| description | | description |
| "Cost community is used after IGP distance to next hop"; | | "Cost community is used after IGP distance to next hop"; |
| container transitive { | | container transitive { |
| presence "Indicates a transitive node is configured."; | | presence "Indicates a transitive node is configured."; |
| description | | description |
| "Enable transitive cost community"; | | "Enable transitive cost community"; |
| } | | } |
| } | | } |
| container pre-bestpath { | | container pre-bestpath { |
| presence "Indicates a pre-bestpath node is configured."; | | presence "Indicates a pre-bestpath node is configured."; |
| description | | description |
| "Cost community is first step in best path calculation"; | | "Cost community is first step in best path calculation"; |
| container transitive { | | container transitive { |
| presence "Indicates a transitive node is configured."; | | presence "Indicates a transitive node is configured."; |
| description | | description |
| "Enable transitive cost community"; | | "Enable transitive cost community"; |
| } | | } |
| } | | } |
| } | | } |
| container disable { | | container disable { |
| must "not(../cost-community-id)"; | | must "not(../cost-community-id)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable aigp send cost-community"; | | "Disable aigp send cost-community"; |
| } | | } |
| } | | } |
| container med { | | container med { |
| presence "Indicates a med node is configured."; | | presence "Indicates a med node is configured."; |
| description | | description |
| "Send AIGP value in MED"; | | "Send AIGP value in MED"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable aigp send med"; | | "Disable aigp send med"; |
| } | | } |
| } | | } |
| } | | } |
| container validation { | | container validation { |
| when "../af-name = 'ipv4-flowspec' or ../af-name = 'ipv6-flowspec'"; | | when "../af-name = 'ipv4-flowspec' or ../af-name = 'ipv6-flowspec'"; |
| presence "Indicates a validation node is configured."; | | presence "Indicates a validation node is configured."; |
| description | | description |
| "Flowspec Validation for this neighbor "; | | "Flowspec Validation for this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Flowspec Validation"; | | "Disable Flowspec Validation"; |
| } | | } |
| container redirect { | | container redirect { |
| description | | description |
| "Flowspec Redirect nexthop Validation"; | | "Flowspec Redirect nexthop Validation"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Flowspec Redirect nexthop Validation"; | | "Disable Flowspec Redirect nexthop Validation"; |
| } | | } |
| } | | } |
| } | | } |
| container send-multicast-attributes { | | container send-multicast-attributes { |
| when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv4-labeled-unicast' or ../af-name = 'ipv6-labeled-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-multicast' or ../af-name = 'ipv4-mvpn' or ../af-name = 'ipv6-mvpn'"; | | when "../af-name = 'ipv4-unicast' or ../af-name = 'ipv6-unicast' or ../af-name = 'ipv4-labeled-unicast' or ../af-name = 'ipv6-labeled-unicast' or ../af-name = 'ipv4-multicast' or ../af-name = 'ipv6-multicast' or ../af-name = 'ipv4-mvpn' or ../af-name = 'ipv6-mvpn'"; |
| presence "Indicates a send-multicast-attributes node is configured."; | | presence "Indicates a send-multicast-attributes node is configured."; |
| description | | description |
| "Send multicast attributes to this neighbor "; | | "Send multicast attributes to this neighbor "; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable send multicast attribute"; | | "Disable send multicast attribute"; |
| } | | } |
| } | | } |
| container signalling { | | container signalling { |
| description | | description |
| "Signalling protocols to disable, BGP or LDP"; | | "Signalling protocols to disable, BGP or LDP"; |
| container bgp { | | container bgp { |
| description | | description |
| "Select BGP to disable"; | | "Select BGP to disable"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Signalling type"; | | "Disable Signalling type"; |
| } | | } |
| } | | } |
| container ldp { | | container ldp { |
| description | | description |
| "Select LDP to disable"; | | "Select LDP to disable"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable Signalling type"; | | "Disable Signalling type"; |
| } | | } |
| } | | } |
| } | | } |
| container accept-own { | | container accept-own { |
| presence "Indicates a accept-own node is configured."; | | presence "Indicates a accept-own node is configured."; |
| description | | description |
| "Handle self-originated routes with Accept-Own community"; | | "Handle self-originated routes with Accept-Own community"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent item being inherited from a parent group"; | | "Prevent item being inherited from a parent group"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container update { | | container update { |
| description | | description |
| "BGP Update configuration"; | | "BGP Update configuration"; |
| container in { | | container in { |
| description | | description |
| "Inbound update message handling"; | | "Inbound update message handling"; |
| container filtering { | | container filtering { |
| presence "Indicates a filtering node is configured."; | | presence "Indicates a filtering node is configured."; |
| description | | description |
| "Inbound update message filtering"; | | "Inbound update message filtering"; |
| container message { | | container message { |
| description | | description |
| "Filtered update messages"; | | "Filtered update messages"; |
| container buffers { | | container buffers { |
| presence "Indicates a buffers node is configured."; | | presence "Indicates a buffers node is configured."; |
| description | | description |
| "Filtered update message buffers"; | | "Filtered update message buffers"; |
| leaf number-of-buffers { | | leaf number-of-buffers { |
| type uint32 { | | type uint32 { |
| range "0..25" { | | range "0..25" { |
| description | | description |
| "Number of buffers to store filtered update messages (resizing does not take effect after filtering action has started)"; | | "Number of buffers to store filtered update messages (resizing does not take effect after filtering action has started)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Filtered update message buffers"; | | "Filtered update message buffers"; |
| } | | } |
| container non-circular { | | container non-circular { |
| presence "Indicates a non-circular node is configured."; | | presence "Indicates a non-circular node is configured."; |
| description | | description |
| "Message buffer list is not circular"; | | "Message buffer list is not circular"; |
| } | | } |
| } | | } |
| } | | } |
| container logging { | | container logging { |
| description | | description |
| "Update filtering syslog message"; | | "Update filtering syslog message"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable update filtering syslog message"; | | "Disable update filtering syslog message"; |
| } | | } |
| } | | } |
| container attribute-filter { | | container attribute-filter { |
| description | | description |
| "Attribute-filter configuration"; | | "Attribute-filter configuration"; |
| leaf group { | | leaf group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Attribute-filter group name"; | | "Attribute-filter group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Attribute-filter group configuration"; | | "Attribute-filter group configuration"; |
| } | | } |
| } | | } |
| } | | } |
| container merge { | | container merge { |
| description | | description |
| "Merge incoming updates"; | | "Merge incoming updates"; |
| container safi { | | container safi { |
| description | | description |
| "SAFI of the NLRIs to merge"; | | "SAFI of the NLRIs to merge"; |
| container unicast { | | container unicast { |
| description | | description |
| "IPv4/IPv6 unicast paths"; | | "IPv4/IPv6 unicast paths"; |
| container labeled-unicast { | | container labeled-unicast { |
| presence "Indicates a labeled-unicast node is configured."; | | presence "Indicates a labeled-unicast node is configured."; |
| description | | description |
| "IPv4/IPv6 labeled-unicast paths"; | | "IPv4/IPv6 labeled-unicast paths"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container graceful-maintenance { | | container graceful-maintenance { |
| presence "Indicates a graceful-maintenance node is configured."; | | presence "Indicates a graceful-maintenance node is configured."; |
| description | | description |
| "Attributes for Graceful Maintenance. This will cause | | "Attributes for Graceful Maintenance. This will cause |
| neig de-prer routes from this router and | | neig de-prer routes from this router and |
| choonates.his allows the router to be | | choonates.his allows the router to be |
| brour out service gracefully."; | | brour out service gracefully."; |
| container local-preference { | | container local-preference { |
| must "local-preference-value or inheritance-disable"; | | must "local-preference-value or inheritance-disable"; |
| presence "Indicates a local-preference node is configured."; | | presence "Indicates a local-preference node is configured."; |
| description | | description |
| "local preference with which to advertise routes to ibgps. Deflt=No Touch"; | | "local preference with which to advertise routes to ibgps. Deflt=No Touch"; |
| leaf local-preference-value { | | leaf local-preference-value { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Range of values for Local Preference"; | | "Range of values for Local Preference"; |
| } | | } |
| } | | } |
| description | | description |
| "Range of values for Local Preference"; | | "Range of values for Local Preference"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local preference from being inherited from the parent"; | | "Prevent local preference from being inherited from the parent"; |
| } | | } |
| } | | } |
| container as-prepends { | | container as-prepends { |
| must "number-of-as-prepends or inheritance-disable"; | | must "number-of-as-prepends or inheritance-disable"; |
| presence "Indicates a as-prepends node is configured."; | | presence "Indicates a as-prepends node is configured."; |
| description | | description |
| "Number of times to prepend the local AS number to the | | "Number of times to prepend the local AS number to the |
| AS poutes.efault=0"; | | AS poutes.efault=0"; |
| leaf number-of-as-prepends { | | leaf number-of-as-prepends { |
| type uint32 { | | type uint32 { |
| range "0..6" { | | range "0..6" { |
| description | | description |
| "Range of number of AS prepends"; | | "Range of number of AS prepends"; |
| } | | } |
| } | | } |
| description | | description |
| "Range of number of AS prepends"; | | "Range of number of AS prepends"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent AS prepends from being inherited from the parent"; | | "Prevent AS prepends from being inherited from the parent"; |
| } | | } |
| } | | } |
| container activate { | | container activate { |
| presence "Indicates a activate node is configured."; | | presence "Indicates a activate node is configured."; |
| description | | description |
| "Routes will be announced with the graceful maintenance | | "Routes will be announced with the graceful maintenance |
| attrhile aivated either here or under router | | attrhile aivated either here or under router |
| bgp ation.hile activated, all routes to this | | bgp ation.hile activated, all routes to this |
| neigl be aounced with the attributes | | neigl be aounced with the attributes |
| confere anall routes from this neighbor will | | confere anall routes from this neighbor will |
| be a to otr neighbors with the graceful | | be a to otr neighbors with the graceful |
| mainattribes configured under those | | mainattribes configured under those |
| neighe g-st community will be announced | | neighe g-st community will be announced |
| regaf the her attributes configured here. To | | regaf the her attributes configured here. To |
| alloshut cmunity to be announced to ebgp | | alloshut cmunity to be announced to ebgp |
| neighe sencommunity-gshut-ebgp configuration | | neighe sencommunity-gshut-ebgp configuration |
| is aired. te: changes to the attributes will | | is aired. te: changes to the attributes will |
| not ect whe activated."; | | not ect whe activated."; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent activate from being inherited from the parent"; | | "Prevent activate from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| leaf remote-as { | | leaf remote-as { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| leaf remote-as-list { | | leaf remote-as-list { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "as-list name"; | | "as-list name"; |
| } | | } |
| } | | } |
| description | | description |
| "Remote as-list configuration"; | | "Remote as-list configuration"; |
| } | | } |
| container use { | | container use { |
| description | | description |
| "Inherit configuration from a group"; | | "Inherit configuration from a group"; |
| leaf session-group { | | leaf session-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Session group name"; | | "Session group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit address-family independent config from a session-group"; | | "Inherit address-family independent config from a session-group"; |
| } | | } |
| leaf neighbor-group { | | leaf neighbor-group { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Neighbor-group name"; | | "Neighbor-group name"; |
| } | | } |
| } | | } |
| description | | description |
| "Inherit configuration from a neighbor-group"; | | "Inherit configuration from a neighbor-group"; |
| } | | } |
| } | | } |
| container advertisement-interval { | | container advertisement-interval { |
| presence "Indicates a advertisement-interval node is configured."; | | presence "Indicates a advertisement-interval node is configured."; |
| description | | description |
| "Minimum interval between sending BGP routing updates"; | | "Minimum interval between sending BGP routing updates"; |
| leaf time-in-seconds { | | leaf time-in-seconds { |
| type uint32 { | | type uint32 { |
| range "0..600" { | | range "0..600" { |
| description | | description |
| "time in seconds"; | | "time in seconds"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Minimum interval between sending BGP routing updates"; | | "Minimum interval between sending BGP routing updates"; |
| } | | } |
| leaf time-in-milliseconds { | | leaf time-in-milliseconds { |
| type uint32 { | | type uint32 { |
| range "0..999" { | | range "0..999" { |
| description | | description |
| "time in milliseconds"; | | "time in milliseconds"; |
| } | | } |
| } | | } |
| description | | description |
| "time in milliseconds"; | | "time in milliseconds"; |
| } | | } |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Up to 256 characters describing this neighbor"; | | "Up to 256 characters describing this neighbor"; |
| } | | } |
| } | | } |
| description | | description |
| "Neighbor specific description"; | | "Neighbor specific description"; |
| } | | } |
| container ignore-connected-check { | | container ignore-connected-check { |
| presence "Indicates a ignore-connected-check node is configured."; | | presence "Indicates a ignore-connected-check node is configured."; |
| description | | description |
| "Bypass the directly connected nexthop check for single-hop eBGP peering"; | | "Bypass the directly connected nexthop check for single-hop eBGP peering"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ignore-connected-check from being inherited from the parent"; | | "Prevent ignore-connected-check from being inherited from the parent"; |
| } | | } |
| } | | } |
| container internal-vpn-client { | | container internal-vpn-client { |
| presence "Indicates a internal-vpn-client node is configured."; | | presence "Indicates a internal-vpn-client node is configured."; |
| description | | description |
| "Preserve iBGP CE neighbor path in ATTR_SET across VPN core"; | | "Preserve iBGP CE neighbor path in ATTR_SET across VPN core"; |
| } | | } |
| container ebgp-multihop { | | container ebgp-multihop { |
| presence "Indicates a ebgp-multihop node is configured."; | | presence "Indicates a ebgp-multihop node is configured."; |
| description | | description |
| "Allow EBGP neighbors not on directly connected networks"; | | "Allow EBGP neighbors not on directly connected networks"; |
| leaf maximum-hop-count { | | leaf maximum-hop-count { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "maximum hop count"; | | "maximum hop count"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "maximum hop count"; | | "maximum hop count"; |
| } | | } |
| container mpls { | | container mpls { |
| presence "Indicates a mpls node is configured."; | | presence "Indicates a mpls node is configured."; |
| description | | description |
| "Disable BGP MPLS forwarding"; | | "Disable BGP MPLS forwarding"; |
| } | | } |
| } | | } |
| container tcp { | | container tcp { |
| description | | description |
| "TCP session configuration commands"; | | "TCP session configuration commands"; |
| container mss { | | container mss { |
| must "initial-mss or inheritance-disable"; | | must "initial-mss or inheritance-disable"; |
| presence "Indicates a mss node is configured."; | | presence "Indicates a mss node is configured."; |
| description | | description |
| "Maximum Segment Size"; | | "Maximum Segment Size"; |
| leaf initial-mss { | | leaf initial-mss { |
| type uint32 { | | type uint32 { |
| range "68..10000" { | | range "68..10000" { |
| description | | description |
| "TCP initial maximum segment size"; | | "TCP initial maximum segment size"; |
| } | | } |
| } | | } |
| description | | description |
| "TCP initial maximum segment size"; | | "TCP initial maximum segment size"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent tcp mss from being inherited from the parent"; | | "Prevent tcp mss from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| container bmp-activate { | | container bmp-activate { |
| description | | description |
| "Enable BMP logging for this neighbor"; | | "Enable BMP logging for this neighbor"; |
| container servers { | | container servers { |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| list server { | | list server { |
| key "server-id"; | | key "server-id"; |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| leaf server-id { | | leaf server-id { |
| type uint32 { | | type uint32 { |
| range "1..8" { | | range "1..8" { |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| } | | } |
| } | | } |
| description | | description |
| "Enable BMP connection to particular server"; | | "Enable BMP connection to particular server"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container bfd { | | container bfd { |
| description | | description |
| "Configure BFD parameters"; | | "Configure BFD parameters"; |
| container fast-detect { | | container fast-detect { |
| must "not(strict-mode and disable)"; | | must "not(strict-mode and disable)"; |
| presence "Indicates a fast-detect node is configured."; | | presence "Indicates a fast-detect node is configured."; |
| description | | description |
| "Enable Fast detection"; | | "Enable Fast detection"; |
| container strict-mode { | | container strict-mode { |
| presence "Indicates a strict-mode node is configured."; | | presence "Indicates a strict-mode node is configured."; |
| description | | description |
| "Hold down neighbor session until BFD session is up"; | | "Hold down neighbor session until BFD session is up"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Prevent bfd settings from being inherited from the parent"; | | "Prevent bfd settings from being inherited from the parent"; |
| } | | } |
| } | | } |
| leaf minimum-interval { | | leaf minimum-interval { |
| type uint32 { | | type uint32 { |
| range "3..30000" { | | range "3..30000" { |
| description | | description |
| "hello interval in milli-seconds"; | | "hello interval in milli-seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Hello interval"; | | "Hello interval"; |
| } | | } |
| leaf multiplier { | | leaf multiplier { |
| type uint32 { | | type uint32 { |
| range "2..16" { | | range "2..16" { |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| container keychain { | | container keychain { |
| must "name or inheritance-disable"; | | must "name or inheritance-disable"; |
| presence "Indicates a keychain node is configured."; | | presence "Indicates a keychain node is configured."; |
| description | | description |
| "Set keychain based authentication"; | | "Set keychain based authentication"; |
| leaf name { | | leaf name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent keychain from being inherited from parent"; | | "Prevent keychain from being inherited from parent"; |
| } | | } |
| } | | } |
| container local-as { | | container local-as { |
| must "as-number or inheritance-disable"; | | must "as-number or inheritance-disable"; |
| presence "Indicates a local-as node is configured."; | | presence "Indicates a local-as node is configured."; |
| description | | description |
| "Specify local AS number"; | | "Specify local AS number"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| container no-prepend { | | container no-prepend { |
| presence "Indicates a no-prepend node is configured."; | | presence "Indicates a no-prepend node is configured."; |
| description | | description |
| "Do not prepend local AS to announcements from this neighbor"; | | "Do not prepend local AS to announcements from this neighbor"; |
| container replace-as { | | container replace-as { |
| presence "Indicates a replace-as node is configured."; | | presence "Indicates a replace-as node is configured."; |
| description | | description |
| "Prepend only local AS to announcements to this neighbor"; | | "Prepend only local AS to announcements to this neighbor"; |
| container dual-as { | | container dual-as { |
| presence "Indicates a dual-as node is configured."; | | presence "Indicates a dual-as node is configured."; |
| description | | description |
| "Dual-AS mode"; | | "Dual-AS mode"; |
| } | | } |
| } | | } |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local AS from being inherited from parent"; | | "Prevent local AS from being inherited from parent"; |
| } | | } |
| } | | } |
| container password { | | container password { |
| must "encrypted or inheritance-disable"; | | must "encrypted or inheritance-disable"; |
| presence "Indicates a password node is configured."; | | presence "Indicates a password node is configured."; |
| description | | description |
| "Set a password"; | | "Set a password"; |
| leaf encrypted { | | leaf encrypted { |
| type xr:Proprietary-password; | | type xr:Proprietary-password; |
| description | | description |
| "Specifies an ENCRYPTED password will follow"; | | "Specifies an ENCRYPTED password will follow"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent password from being inherited from parent"; | | "Prevent password from being inherited from parent"; |
| } | | } |
| } | | } |
| container receive-buffer-size { | | container receive-buffer-size { |
| presence "Indicates a receive-buffer-size node is configured."; | | presence "Indicates a receive-buffer-size node is configured."; |
| description | | description |
| "Set socket and BGP receive buffer size"; | | "Set socket and BGP receive buffer size"; |
| leaf receive-socket-buffer-size { | | leaf receive-socket-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "Receive socket buffer size in bytes"; | | "Receive socket buffer size in bytes"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Set socket and BGP receive buffer size"; | | "Set socket and BGP receive buffer size"; |
| } | | } |
| leaf bgp-read-buffer-size { | | leaf bgp-read-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| container send-buffer-size { | | container send-buffer-size { |
| presence "Indicates a send-buffer-size node is configured."; | | presence "Indicates a send-buffer-size node is configured."; |
| description | | description |
| "Set socket and BGP send buffer size"; | | "Set socket and BGP send buffer size"; |
| leaf send-socket-buffer-size { | | leaf send-socket-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "Send socket buffer size in bytes"; | | "Send socket buffer size in bytes"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Set socket and BGP send buffer size"; | | "Set socket and BGP send buffer size"; |
| } | | } |
| leaf bgp-write-buffer-size { | | leaf bgp-write-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| } | | } |
| container shutdown { | | container shutdown { |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Administratively shut down this neighbor"; | | "Administratively shut down this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent this neighbor being shutdown, even if its parent is"; | | "Prevent this neighbor being shutdown, even if its parent is"; |
| } | | } |
| } | | } |
| container fast-fallover { | | container fast-fallover { |
| presence "Indicates a fast-fallover node is configured."; | | presence "Indicates a fast-fallover node is configured."; |
| description | | description |
| "Force neighbor to be directly connected. Bring neighbor down if its interface goes down"; | | "Force neighbor to be directly connected. Bring neighbor down if its interface goes down"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent this neighbor from inheriting this config from a group it is in"; | | "Prevent this neighbor from inheriting this config from a group it is in"; |
| } | | } |
| } | | } |
| container timers { | | container timers { |
| presence "Indicates a timers node is configured."; | | presence "Indicates a timers node is configured."; |
| description | | description |
| "BGP per neighbor timers"; | | "BGP per neighbor timers"; |
| leaf keepalive-interval { | | leaf keepalive-interval { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "Keepalive interval"; | | "Keepalive interval"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "BGP timers"; | | "BGP timers"; |
| } | | } |
| leaf holdtime { | | leaf holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Holdtime."; | | "Holdtime."; |
| } | | } |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Holdtime. Set 0 to disable keepalives/hold time."; | | "Holdtime. Set 0 to disable keepalives/hold time."; |
| } | | } |
| leaf minimum-acceptable-holdtime { | | leaf minimum-acceptable-holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Minimum acceptable holdtime from neighbor."; | | "Minimum acceptable holdtime from neighbor."; |
| } | | } |
| } | | } |
| } | | } |
| description | | description |
| "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; | | "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| container local { | | container local { |
| description | | description |
| "Configure local parameter"; | | "Configure local parameter"; |
| container address { | | container address { |
| must "ip-address or inheritance-disable"; | | must "ip-address or inheritance-disable"; |
| presence "Indicates a address node is configured."; | | presence "Indicates a address node is configured."; |
| description | | description |
| "use configured local address for bgp peering"; | | "use configured local address for bgp peering"; |
| leaf ip-address { | | leaf ip-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IPv4 address"; | | "IPv4 address"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent local address from being inherited from parent"; | | "Prevent local address from being inherited from parent"; |
| } | | } |
| } | | } |
| } | | } |
| container log { | | container log { |
| description | | description |
| "Logging update messages per neighbor"; | | "Logging update messages per neighbor"; |
| container message { | | container message { |
| description | | description |
| "Logging update/notification messages per neighbor"; | | "Logging update/notification messages per neighbor"; |
| container in { | | container in { |
| description | | description |
| "Inbound log messages"; | | "Inbound log messages"; |
| leaf message-log-buffer-size { | | leaf message-log-buffer-size { |
| type uint32 { | | type uint32 { |
| range "1..500" { | | range "1..500" { |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| } | | } |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable inbound message logging"; | | "Disable inbound message logging"; |
| } | | } |
| container inheritance-diable { | | container inheritance-diable { |
| presence "Indicates a inheritance-diable node is configured."; | | presence "Indicates a inheritance-diable node is configured."; |
| description | | description |
| "Prevents the msg log from being inherited from the parent"; | | "Prevents the msg log from being inherited from the parent"; |
| } | | } |
| } | | } |
| container out { | | container out { |
| description | | description |
| "Outbound log messages"; | | "Outbound log messages"; |
| leaf range-for-message-log-buffer { | | leaf range-for-message-log-buffer { |
| type uint32 { | | type uint32 { |
| range "1..500" { | | range "1..500" { |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| } | | } |
| description | | description |
| "Range for message log buffer size"; | | "Range for message log buffer size"; |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable outbound message logging"; | | "Disable outbound message logging"; |
| } | | } |
| container inheritance-diable { | | container inheritance-diable { |
| presence "Indicates a inheritance-diable node is configured."; | | presence "Indicates a inheritance-diable node is configured."; |
| description | | description |
| "Prevents the msg log from being inherited from the parent"; | | "Prevents the msg log from being inherited from the parent"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| leaf update-source { | | leaf update-source { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Source of routing updates"; | | "Source of routing updates"; |
| } | | } |
| container local-address-subnet { | | container local-address-subnet { |
| description | | description |
| "Local address subnet of routing updates"; | | "Local address subnet of routing updates"; |
| leaf ip-address { | | leaf ip-address { |
| type inet:ip-address-no-zone; | | type inet:ip-address-no-zone; |
| description | | description |
| "IP address and mask or masklength"; | | "IP address and mask or masklength"; |
| } | | } |
| leaf mask-length { | | leaf mask-length { |
| type uint32 { | | type uint32 { |
| range "0..128" { | | range "0..128" { |
| description | | description |
| "IP address mask length"; | | "IP address mask length"; |
| } | | } |
| } | | } |
| description | | description |
| "IP address and mask length"; | | "IP address and mask length"; |
| } | | } |
| } | | } |
| container dmz-link-bandwidth { | | container dmz-link-bandwidth { |
| presence "Indicates a dmz-link-bandwidth node is configured."; | | presence "Indicates a dmz-link-bandwidth node is configured."; |
| description | | description |
| "Propagate the DMZ link bandwidth"; | | "Propagate the DMZ link bandwidth"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent dmz-link-bandwidth from being inherited from the parent"; | | "Prevent dmz-link-bandwidth from being inherited from the parent"; |
| } | | } |
| } | | } |
| container ebgp-recv-extcommunity-dmz { | | container ebgp-recv-extcommunity-dmz { |
| presence "Indicates a ebgp-recv-extcommunity-dmz node is configured."; | | presence "Indicates a ebgp-recv-extcommunity-dmz node is configured."; |
| description | | description |
| "Receive extcommunity dmz link bandwidth from ebgp neighbor"; | | "Receive extcommunity dmz link bandwidth from ebgp neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ebgp-send-community-dmz from being inherited from parent"; | | "Prevent ebgp-send-community-dmz from being inherited from parent"; |
| } | | } |
| } | | } |
| container ebgp-send-extcommunity-dmz { | | container ebgp-send-extcommunity-dmz { |
| must "not(cumulative and inheritance-disable)"; | | must "not(cumulative and inheritance-disable)"; |
| presence "Indicates a ebgp-send-extcommunity-dmz node is configured."; | | presence "Indicates a ebgp-send-extcommunity-dmz node is configured."; |
| description | | description |
| "Send extended community dmz link bandwidth to ebgp neighbor"; | | "Send extended community dmz link bandwidth to ebgp neighbor"; |
| container cumulative { | | container cumulative { |
| presence "Indicates a cumulative node is configured."; | | presence "Indicates a cumulative node is configured."; |
| description | | description |
| "Send cumulative community dmz link bandwidth of all multipaths to ebgp neighbor"; | | "Send cumulative community dmz link bandwidth of all multipaths to ebgp neighbor"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ebgp-send-extcommunity-dmz from being inherited from parent"; | | "Prevent ebgp-send-extcommunity-dmz from being inherited from parent"; |
| } | | } |
| } | | } |
| container evpn-link-bandwidth { | | container evpn-link-bandwidth { |
| presence "Indicates a evpn-link-bandwidth node is configured."; | | presence "Indicates a evpn-link-bandwidth node is configured."; |
| description | | description |
| "Propagate the EVPN link bandwidth"; | | "Propagate the EVPN link bandwidth"; |
| leaf per-path { | | leaf per-path { |
| type uint32 { | | type uint32 { |
| range "1..1000" { | | range "1..1000" { |
| description | | description |
| "Unit per-path"; | | "Unit per-path"; |
| } | | } |
| } | | } |
| description | | description |
| "EVPN Link Bandwidth using per-path generalized unit"; | | "EVPN Link Bandwidth using per-path generalized unit"; |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent evpn-link-bandwidth from being inherited from the parent"; | | "Prevent evpn-link-bandwidth from being inherited from the parent"; |
| } | | } |
| } | | } |
| container ttl-security { | | container ttl-security { |
| presence "Indicates a ttl-security node is configured."; | | presence "Indicates a ttl-security node is configured."; |
| description | | description |
| "Enable EBGP TTL security"; | | "Enable EBGP TTL security"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent ttl-security from being inherited from the parent"; | | "Prevent ttl-security from being inherited from the parent"; |
| } | | } |
| } | | } |
| container session-open-mode { | | container session-open-mode { |
| description | | description |
| "Establish BGP session using this TCP open mode"; | | "Establish BGP session using this TCP open mode"; |
| container active-only { | | container active-only { |
| must "not(../passive-only or ../both)"; | | must "not(../passive-only or ../both)"; |
| presence "Indicates a active-only node is configured."; | | presence "Indicates a active-only node is configured."; |
| description | | description |
| "Active only"; | | "Active only"; |
| } | | } |
| container passive-only { | | container passive-only { |
| must "not(../active-only or ../both)"; | | must "not(../active-only or ../both)"; |
| presence "Indicates a passive-only node is configured."; | | presence "Indicates a passive-only node is configured."; |
| description | | description |
| "Passive only"; | | "Passive only"; |
| } | | } |
| container both { | | container both { |
| must "not(../active-only or ../passive-only)"; | | must "not(../active-only or ../passive-only)"; |
| presence "Indicates a both node is configured."; | | presence "Indicates a both node is configured."; |
| description | | description |
| "Prevent session-open-mode being inherited from the parent"; | | "Prevent session-open-mode being inherited from the parent"; |
| } | | } |
| } | | } |
| leaf dscp { | | leaf dscp { |
| type enumeration { | | type enumeration { |
| enum "default" { | | enum "default" { |
| value 0; | | value 0; |
| description | | description |
| "Set packets with default dscp (000000)"; | | "Set packets with default dscp (000000)"; |
| } | | } |
| enum "cs1" { | | enum "cs1" { |
| value 8; | | value 8; |
| description | | description |
| "Set packets with CS1(precedence 1) dscp (001000)"; | | "Set packets with CS1(precedence 1) dscp (001000)"; |
| } | | } |
| enum "af11" { | | enum "af11" { |
| value 10; | | value 10; |
| description | | description |
| "Set packets with AF11 dscp (001010)"; | | "Set packets with AF11 dscp (001010)"; |
| } | | } |
| enum "af12" { | | enum "af12" { |
| value 12; | | value 12; |
| description | | description |
| "Set packets with AF12 dscp (001100)"; | | "Set packets with AF12 dscp (001100)"; |
| } | | } |
| enum "af13" { | | enum "af13" { |
| value 14; | | value 14; |
| description | | description |
| "Set packets with AF13 dscp (001110)"; | | "Set packets with AF13 dscp (001110)"; |
| } | | } |
| enum "cs2" { | | enum "cs2" { |
| value 16; | | value 16; |
| description | | description |
| "Set packets with CS2(precedence 2) dscp (010000)"; | | "Set packets with CS2(precedence 2) dscp (010000)"; |
| } | | } |
| enum "af21" { | | enum "af21" { |
| value 18; | | value 18; |
| description | | description |
| "Set packets with AF21 dscp (010010)"; | | "Set packets with AF21 dscp (010010)"; |
| } | | } |
| enum "af22" { | | enum "af22" { |
| value 20; | | value 20; |
| description | | description |
| "Set packets with AF22 dscp (010100)"; | | "Set packets with AF22 dscp (010100)"; |
| } | | } |
| enum "af23" { | | enum "af23" { |
| value 22; | | value 22; |
| description | | description |
| "Set packets with AF23 dscp (010110)"; | | "Set packets with AF23 dscp (010110)"; |
| } | | } |
| enum "cs3" { | | enum "cs3" { |
| value 24; | | value 24; |
| description | | description |
| "Set packets with CS3(precedence 3) dscp (011000)"; | | "Set packets with CS3(precedence 3) dscp (011000)"; |
| } | | } |
| enum "af31" { | | enum "af31" { |
| value 26; | | value 26; |
| description | | description |
| "Set packets with AF31 dscp (011010)"; | | "Set packets with AF31 dscp (011010)"; |
| } | | } |
| enum "af32" { | | enum "af32" { |
| value 28; | | value 28; |
| description | | description |
| "Set packets with AF32 dscp (011100)"; | | "Set packets with AF32 dscp (011100)"; |
| } | | } |
| enum "af33" { | | enum "af33" { |
| value 30; | | value 30; |
| description | | description |
| "Set packets with AF33 dscp (011110)"; | | "Set packets with AF33 dscp (011110)"; |
| } | | } |
| enum "cs4" { | | enum "cs4" { |
| value 32; | | value 32; |
| description | | description |
| "Set packets with CS4(precedence 4) dscp (100000)"; | | "Set packets with CS4(precedence 4) dscp (100000)"; |
| } | | } |
| enum "af41" { | | enum "af41" { |
| value 34; | | value 34; |
| description | | description |
| "Set packets with AF41 dscp (100010)"; | | "Set packets with AF41 dscp (100010)"; |
| } | | } |
| enum "af42" { | | enum "af42" { |
| value 36; | | value 36; |
| description | | description |
| "Set packets with AF42 dscp (100100)"; | | "Set packets with AF42 dscp (100100)"; |
| } | | } |
| enum "af43" { | | enum "af43" { |
| value 38; | | value 38; |
| description | | description |
| "Set packets with AF43 dscp (100110)"; | | "Set packets with AF43 dscp (100110)"; |
| } | | } |
| enum "cs5" { | | enum "cs5" { |
| value 40; | | value 40; |
| description | | description |
| "Set packets with CS5(precedence 5) dscp (101000)"; | | "Set packets with CS5(precedence 5) dscp (101000)"; |
| } | | } |
| enum "ef" { | | enum "ef" { |
| value 46; | | value 46; |
| description | | description |
| "Set packets with EF dscp (101110)"; | | "Set packets with EF dscp (101110)"; |
| } | | } |
| enum "cs6" { | | enum "cs6" { |
| value 48; | | value 48; |
| description | | description |
| "Set packets with CS6(precedence 6) dscp (110000)"; | | "Set packets with CS6(precedence 6) dscp (110000)"; |
| } | | } |
| enum "cs7" { | | enum "cs7" { |
| value 56; | | value 56; |
| description | | description |
| "Set packets with CS7(precedence 7) dscp (111000)"; | | "Set packets with CS7(precedence 7) dscp (111000)"; |
| } | | } |
| } | | } |
| description | | description |
| "Set IP DSCP (DiffServ CodePoint)"; | | "Set IP DSCP (DiffServ CodePoint)"; |
| } | | } |
| leaf precedence { | | leaf precedence { |
| type enumeration { | | type enumeration { |
| enum "routine" { | | enum "routine" { |
| value 0; | | value 0; |
| description | | description |
| "Set packets with routine precedence (0)"; | | "Set packets with routine precedence (0)"; |
| } | | } |
| enum "priority" { | | enum "priority" { |
| value 1; | | value 1; |
| description | | description |
| "Set packets with priority precedence (1)"; | | "Set packets with priority precedence (1)"; |
| } | | } |
| enum "immediate" { | | enum "immediate" { |
| value 2; | | value 2; |
| description | | description |
| "Set packets with immediate precedence (2)"; | | "Set packets with immediate precedence (2)"; |
| } | | } |
| enum "flash" { | | enum "flash" { |
| value 3; | | value 3; |
| description | | description |
| "Set packets with flash precedence (3)"; | | "Set packets with flash precedence (3)"; |
| } | | } |
| enum "flash-override" { | | enum "flash-override" { |
| value 4; | | value 4; |
| description | | description |
| "Set packets with flash override precedence (4)"; | | "Set packets with flash override precedence (4)"; |
| } | | } |
| enum "critical" { | | enum "critical" { |
| value 5; | | value 5; |
| description | | description |
| "Set packets with critical precedence (5)"; | | "Set packets with critical precedence (5)"; |
| } | | } |
| enum "internet" { | | enum "internet" { |
| value 6; | | value 6; |
| description | | description |
| "Set packets with internetwork control precedence (6)"; | | "Set packets with internetwork control precedence (6)"; |
| } | | } |
| enum "network" { | | enum "network" { |
| value 7; | | value 7; |
| description | | description |
| "Set packets with network control precedence (7)"; | | "Set packets with network control precedence (7)"; |
| } | | } |
| } | | } |
| description | | description |
| "Set precedence"; | | "Set precedence"; |
| } | | } |
| container capability { | | container capability { |
| description | | description |
| "Advertise capability to the peer"; | | "Advertise capability to the peer"; |
| container suppress { | | container suppress { |
| description | | description |
| "Suppress advertising capability to the peer "; | | "Suppress advertising capability to the peer "; |
| container four-byte-as { | | container four-byte-as { |
| presence "Indicates a four-byte-as node is configured."; | | presence "Indicates a four-byte-as node is configured."; |
| description | | description |
| "4-byte-as capability"; | | "4-byte-as capability"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent capability suppress 4-type-as being inherited from the parent"; | | "Prevent capability suppress 4-type-as being inherited from the parent"; |
| } | | } |
| } | | } |
| container all { | | container all { |
| presence "Indicates a all node is configured."; | | presence "Indicates a all node is configured."; |
| description | | description |
| "All capabilities"; | | "All capabilities"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| container extended-nexthop-encoding { | | container extended-nexthop-encoding { |
| presence "Indicates a extended-nexthop-encoding node is configured."; | | presence "Indicates a extended-nexthop-encoding node is configured."; |
| description | | description |
| "Extended-nexthop-encoding capabilities (IETF RFC 5549)"; | | "Extended-nexthop-encoding capabilities (IETF RFC 5549)"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit this configuration from parent group"; | | "Do not inherit this configuration from parent group"; |
| } | | } |
| } | | } |
| } | | } |
| container additional-paths { | | container additional-paths { |
| description | | description |
| "Additional paths capability"; | | "Additional paths capability"; |
| container send { | | container send { |
| presence "Indicates a send node is configured."; | | presence "Indicates a send node is configured."; |
| description | | description |
| "Additional paths Send capability"; | | "Additional paths Send capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise additional paths Send capability"; | | "Do not advertise additional paths Send capability"; |
| } | | } |
| } | | } |
| container receive { | | container receive { |
| presence "Indicates a receive node is configured."; | | presence "Indicates a receive node is configured."; |
| description | | description |
| "Additional paths Receive capability"; | | "Additional paths Receive capability"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not advertise additional paths Receive capability"; | | "Do not advertise additional paths Receive capability"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container graceful-restart { | | container graceful-restart { |
| presence "Indicates a graceful-restart node is configured."; | | presence "Indicates a graceful-restart node is configured."; |
| description | | description |
| "Enable graceful restart support for this neighbor"; | | "Enable graceful restart support for this neighbor"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable graceful restart support for this neighbor"; | | "Disable graceful restart support for this neighbor"; |
| } | | } |
| leaf restart-time { | | leaf restart-time { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Restart time advertised to the neighbor"; | | "Restart time advertised to the neighbor"; |
| } | | } |
| leaf stalepath-time { | | leaf stalepath-time { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum time to wait for restart of GR capable peer"; | | "Maximum time to wait for restart of GR capable peer"; |
| } | | } |
| } | | } |
| container enforce-first-as { | | container enforce-first-as { |
| presence "Indicates a enforce-first-as node is configured."; | | presence "Indicates a enforce-first-as node is configured."; |
| description | | description |
| "Enforce the first AS for EBGP routes"; | | "Enforce the first AS for EBGP routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Do not enforce the first AS for EBGP routes"; | | "Do not enforce the first AS for EBGP routes"; |
| } | | } |
| } | | } |
| leaf maximum-peers { | | leaf maximum-peers { |
| type uint32 { | | type uint32 { |
| range "1..4095" { | | range "1..4095" { |
| description | | description |
| "Maximum number of peers"; | | "Maximum number of peers"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum dynamic neighbors"; | | "Maximum dynamic neighbors"; |
| } | | } |
| leaf idle-watch-time { | | leaf idle-watch-time { |
| type uint32 { | | type uint32 { |
| range "30..1800" { | | range "30..1800" { |
| description | | description |
| "Max time (seconds)"; | | "Max time (seconds)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum time to wait for deletion of IDLE state dynamic peer"; | | "Maximum time to wait for deletion of IDLE state dynamic peer"; |
| } | | } |
| container egress-engineering { | | container egress-engineering { |
| presence "Indicates a egress-engineering node is configured."; | | presence "Indicates a egress-engineering node is configured."; |
| description | | description |
| "Enable egress peer engineering for this neighbor"; | | "Enable egress peer engineering for this neighbor"; |
| container inheritance-disable { | | container inheritance-disable { |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Do not inherit egress-engineering from the parent"; | | "Do not inherit egress-engineering from the parent"; |
| } | | } |
| } | | } |
| container peer-sets { | | container peer-sets { |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| list peer-set { | | list peer-set { |
| key "peer-set-id"; | | key "peer-set-id"; |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| leaf peer-set-id { | | leaf peer-set-id { |
| type uint32 { | | type uint32 { |
| range "1..255" { | | range "1..255" { |
| description | | description |
| "Identity value of peer-set"; | | "Identity value of peer-set"; |
| } | | } |
| } | | } |
| description | | description |
| "Assign this neighbor to a peer-set used for egress peer engineering"; | | "Assign this neighbor to a peer-set used for egress peer engineering"; |
| } | | } |
| } | | } |
| } | | } |
| container peer-node-sid { | | container peer-node-sid { |
| description | | description |
| "Assign this neighbor a manual SID for egress peer engineering"; | | "Assign this neighbor a manual SID for egress peer engineering"; |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..1033575" { | | range "0..1033575" { |
| description | | description |
| "Segment Index to be assigned to this peer. The index will be off SRLB | | "Segment Index to be assigned to this peer. The index will be off SRLB |
| Note: This imum index configurable in dynaminc SRLB range. | | Note: This imum index configurable in dynaminc SRLB range. |
| Since SRLB cnamic range, actual maximum index can vary. | | Since SRLB cnamic range, actual maximum index can vary. |
| So please locurrently configured SRLB range"; | | So please locurrently configured SRLB range"; |
| } | | } |
| } | | } |
| description | | description |
| "Segment Index value which is offset of SRLB"; | | "Segment Index value which is offset of SRLB"; |
| } | | } |
| } | | } |
| container ao { | | container ao { |
| description | | description |
| "Enable Authentiation Option"; | | "Enable Authentiation Option"; |
| leaf key-chain-name { | | leaf key-chain-name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| } | | } |
| must "not(../inheritance-disable) and (../include-tcp-options/enable or ../include-tcp-options/disable)"; | | must "not(../inheritance-disable) and (../include-tcp-options/enable or ../include-tcp-options/disable)"; |
| description | | description |
| "Name of the key chain - maximum 32 characters"; | | "Name of the key chain - maximum 32 characters"; |
| } | | } |
| container include-tcp-options { | | container include-tcp-options { |
| description | | description |
| "Include/Exclude other TCP options in the header"; | | "Include/Exclude other TCP options in the header"; |
| container enable { | | container enable { |
| must "not(../disable or ../../inheritance-disable)"; | | must "not(../disable or ../../inheritance-disable)"; |
| presence "Indicates a enable node is configured."; | | presence "Indicates a enable node is configured."; |
| description | | description |
| "Include other TCP options in the header"; | | "Include other TCP options in the header"; |
| } | | } |
| container disable { | | container disable { |
| must "not(../enable or ../../inheritance-disable)"; | | must "not(../enable or ../../inheritance-disable)"; |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Exclude other TCP options in the header"; | | "Exclude other TCP options in the header"; |
| } | | } |
| container accept-ao-mismatch-connection { | | container accept-ao-mismatch-connection { |
| must "../enable or ../disable"; | | must "../enable or ../disable"; |
| presence "Indicates a accept-ao-mismatch-connection node is configured."; | | presence "Indicates a accept-ao-mismatch-connection node is configured."; |
| description | | description |
| "Accept new connection even if AO mismatched"; | | "Accept new connection even if AO mismatched"; |
| } | | } |
| } | | } |
| container inheritance-disable { | | container inheritance-disable { |
| must "not(../key-chain-name)"; | | must "not(../key-chain-name)"; |
| presence "Indicates a inheritance-disable node is configured."; | | presence "Indicates a inheritance-disable node is configured."; |
| description | | description |
| "Prevent keychain from being inherited from parent"; | | "Prevent keychain from being inherited from parent"; |
| } | | } |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validation { | | container validation { |
| description | | description |
| "BGP origin-AS validation knobs"; | | "BGP origin-AS validation knobs"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable RPKI origin-AS validation"; | | "Disable RPKI origin-AS validation"; |
| } | | } |
| } | | } |
| } | | } |
| container bestpath { | | container bestpath { |
| description | | description |
| "Change default route selection criteria"; | | "Change default route selection criteria"; |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container allow { | | container allow { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container invalid { | | container invalid { |
| presence "Indicates a invalid node is configured."; | | presence "Indicates a invalid node is configured."; |
| description | | description |
| "BGP bestpath selection will allow 'invalid' origin-AS"; | | "BGP bestpath selection will allow 'invalid' origin-AS"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container mpls { | | container mpls { |
| description | | description |
| "Enable mpls parameters"; | | "Enable mpls parameters"; |
| container activate { | | container activate { |
| description | | description |
| "Enter mpls interfaces in BGP vrf mpls activation mode"; | | "Enter mpls interfaces in BGP vrf mpls activation mode"; |
| container interfaces { | | container interfaces { |
| description | | description |
| "Interface to enable mpls"; | | "Interface to enable mpls"; |
| list interface { | | list interface { |
| key "interface-name"; | | key "interface-name"; |
| description | | description |
| "Interface to enable mpls"; | | "Interface to enable mpls"; |
| leaf interface-name { | | leaf interface-name { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Interface to enable mpls"; | | "Interface to enable mpls"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container default-information { | | container default-information { |
| description | | description |
| "Control distribution of default information"; | | "Control distribution of default information"; |
| container originate { | | container originate { |
| presence "Indicates a originate node is configured."; | | presence "Indicates a originate node is configured."; |
| description | | description |
| "Distribute a default route"; | | "Distribute a default route"; |
| } | | } |
| } | | } |
| leaf default-metric { | | leaf default-metric { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Default metric"; | | "Default metric"; |
| } | | } |
| } | | } |
| description | | description |
| "default redistributed metric"; | | "default redistributed metric"; |
| } | | } |
| container socket { | | container socket { |
| description | | description |
| "set socket parameters"; | | "set socket parameters"; |
| leaf send-buffer-size { | | leaf send-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "Send socket buffer size in bytes"; | | "Send socket buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "socket send buffer size"; | | "socket send buffer size"; |
| } | | } |
| leaf bgp-write-buffer-size { | | leaf bgp-write-buffer-size { |
| type uint32 { | | type uint32 { |
| range "4096..131072" { | | range "4096..131072" { |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| } | | } |
| must "../send-buffer-size"; | | must "../send-buffer-size"; |
| description | | description |
| "BGP Write buffer size in bytes"; | | "BGP Write buffer size in bytes"; |
| } | | } |
| leaf receive-buffer-size { | | leaf receive-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "Receive socket buffer size in bytes"; | | "Receive socket buffer size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "socket receive buffer size"; | | "socket receive buffer size"; |
| } | | } |
| leaf bgp-read-buffer-size { | | leaf bgp-read-buffer-size { |
| type uint32 { | | type uint32 { |
| range "512..131072" { | | range "512..131072" { |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| must "../receive-buffer-size"; | | must "../receive-buffer-size"; |
| description | | description |
| "BGP Read buffer size in bytes"; | | "BGP Read buffer size in bytes"; |
| } | | } |
| } | | } |
| container nexthop { | | container nexthop { |
| description | | description |
| "Configure next-hop related items"; | | "Configure next-hop related items"; |
| container mpls { | | container mpls { |
| description | | description |
| "Configure next-hop related items for mpls"; | | "Configure next-hop related items for mpls"; |
| container forwarding { | | container forwarding { |
| description | | description |
| "Enable next hop mpls forwarding path"; | | "Enable next hop mpls forwarding path"; |
| container ibgp { | | container ibgp { |
| presence "Indicates a ibgp node is configured."; | | presence "Indicates a ibgp node is configured."; |
| description | | description |
| "Enable mpls forwarding path for ibgp learnt nexthops"; | | "Enable mpls forwarding path for ibgp learnt nexthops"; |
| } | | } |
| } | | } |
| } | | } |
| container resolution { | | container resolution { |
| description | | description |
| "Configure next-hop related items for resolution"; | | "Configure next-hop related items for resolution"; |
| container allow-default { | | container allow-default { |
| presence "Indicates a allow-default node is configured."; | | presence "Indicates a allow-default node is configured."; |
| description | | description |
| "Enable nexthops resolution using default route"; | | "Enable nexthops resolution using default route"; |
| } | | } |
| } | | } |
| } | | } |
| container timers { | | container timers { |
| description | | description |
| "Adjust routing timers"; | | "Adjust routing timers"; |
| container bgp { | | container bgp { |
| presence "Indicates a bgp node is configured."; | | presence "Indicates a bgp node is configured."; |
| description | | description |
| "BGP timers"; | | "BGP timers"; |
| leaf keepalive-interval { | | leaf keepalive-interval { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "Keepalive interval"; | | "Keepalive interval"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "BGP timers"; | | "BGP timers"; |
| } | | } |
| leaf holdtime { | | leaf holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Holdtime."; | | "Holdtime."; |
| } | | } |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Holdtime. Set 0 to disable keepalives/hold time."; | | "Holdtime. Set 0 to disable keepalives/hold time."; |
| } | | } |
| leaf minimum-acceptable-holdtime { | | leaf minimum-acceptable-holdtime { |
| type union { | | type union { |
| type uint32 { | | type uint32 { |
| range "0" { | | range "0" { |
| description | | description |
| "0 to disable keepalives/hold time."; | | "0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| type uint32 { | | type uint32 { |
| range "3..65535" { | | range "3..65535" { |
| description | | description |
| "Minimum acceptable holdtime from neighbor."; | | "Minimum acceptable holdtime from neighbor."; |
| } | | } |
| } | | } |
| } | | } |
| description | | description |
| "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; | | "Minimum acceptable holdtime from neighbor. Set 0 to disable keepalives/hold time."; |
| } | | } |
| } | | } |
| } | | } |
| container optimal-route-reflection { | | container optimal-route-reflection { |
| description | | description |
| "Configure optimal-route-reflection group"; | | "Configure optimal-route-reflection group"; |
| container ipv4 { | | container ipv4 { |
| description | | description |
| "IPv4 ORR group"; | | "IPv4 ORR group"; |
| list orr-group { | | list orr-group { |
| key "orr-group-name"; | | key "orr-group-name"; |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| leaf orr-group-name { | | leaf orr-group-name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| leaf primary-address { | | leaf primary-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| mandatory true; | | mandatory true; |
| description | | description |
| "IPv4 primary address"; | | "IPv4 primary address"; |
| } | | } |
| leaf secondary-address { | | leaf secondary-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "IPv4 secondary address"; | | "IPv4 secondary address"; |
| } | | } |
| leaf tertiary-address { | | leaf tertiary-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| must "../secondary-address"; | | must "../secondary-address"; |
| description | | description |
| "IPv4 tertiary address"; | | "IPv4 tertiary address"; |
| } | | } |
| leaf flex-algo { | | leaf flex-algo { |
| type uint32 { | | type uint32 { |
| range "128..255" { | | range "128..255" { |
| description | | description |
| "Flexiable Algorithm value"; | | "Flexiable Algorithm value"; |
| } | | } |
| } | | } |
| description | | description |
| "Flexible Algorithm"; | | "Flexible Algorithm"; |
| } | | } |
| } | | } |
| } | | } |
| container ipv6 { | | container ipv6 { |
| description | | description |
| "IPv6 ORR group"; | | "IPv6 ORR group"; |
| list orr-group { | | list orr-group { |
| key "orr-group-name"; | | key "orr-group-name"; |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| leaf orr-group-name { | | leaf orr-group-name { |
| type string { | | type string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| } | | } |
| description | | description |
| "ORR group name - maximum 32 characters"; | | "ORR group name - maximum 32 characters"; |
| } | | } |
| leaf primary-address { | | leaf primary-address { |
| type inet:ipv6-address-no-zone; | | type inet:ipv6-address-no-zone; |
| mandatory true; | | mandatory true; |
| description | | description |
| "IPv6 primary address"; | | "IPv6 primary address"; |
| } | | } |
| leaf secondary-address { | | leaf secondary-address { |
| type inet:ipv6-address-no-zone; | | type inet:ipv6-address-no-zone; |
| description | | description |
| "IPv6 secondary address"; | | "IPv6 secondary address"; |
| } | | } |
| leaf tertiary-address { | | leaf tertiary-address { |
| type inet:ipv6-address-no-zone; | | type inet:ipv6-address-no-zone; |
| must "../secondary-address"; | | must "../secondary-address"; |
| description | | description |
| "IPv6 tertiary address"; | | "IPv6 tertiary address"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container bgp { | | container bgp { |
| description | | description |
| "BGP commands"; | | "BGP commands"; |
| container auto-policy-soft-reset { | | container auto-policy-soft-reset { |
| description | | description |
| "Enable automatic soft peer reset on policy reconfiguration"; | | "Enable automatic soft peer reset on policy reconfiguration"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable automatic soft peer reset on policy reconfiguration"; | | "Disable automatic soft peer reset on policy reconfiguration"; |
| } | | } |
| } | | } |
| container bestpath { | | container bestpath { |
| description | | description |
| "Change default route selection criteria"; | | "Change default route selection criteria"; |
| container as-path { | | container as-path { |
| description | | description |
| "AS path length"; | | "AS path length"; |
| container ignore { | | container ignore { |
| presence "Indicates a ignore node is configured."; | | presence "Indicates a ignore node is configured."; |
| description | | description |
| "Ignore as-path length"; | | "Ignore as-path length"; |
| } | | } |
| container multipath-relax { | | container multipath-relax { |
| presence "Indicates a multipath-relax node is configured."; | | presence "Indicates a multipath-relax node is configured."; |
| description | | description |
| "Relax as-path check for multipath selection"; | | "Relax as-path check for multipath selection"; |
| } | | } |
| } | | } |
| container cost-community { | | container cost-community { |
| description | | description |
| "Cost community"; | | "Cost community"; |
| container ignore { | | container ignore { |
| presence "Indicates a ignore node is configured."; | | presence "Indicates a ignore node is configured."; |
| description | | description |
| "Ignore cost-community comparison"; | | "Ignore cost-community comparison"; |
| } | | } |
| } | | } |
| container compare-routerid { | | container compare-routerid { |
| presence "Indicates a compare-routerid node is configured."; | | presence "Indicates a compare-routerid node is configured."; |
| description | | description |
| "Compare router-id for identical EBGP paths"; | | "Compare router-id for identical EBGP paths"; |
| } | | } |
| container aigp { | | container aigp { |
| description | | description |
| "AIGP attribute"; | | "AIGP attribute"; |
| container ignore { | | container ignore { |
| presence "Indicates a ignore node is configured."; | | presence "Indicates a ignore node is configured."; |
| description | | description |
| "Ignore AIGP attribute"; | | "Ignore AIGP attribute"; |
| } | | } |
| } | | } |
| container igp-metric { | | container igp-metric { |
| description | | description |
| "IGP metric values"; | | "IGP metric values"; |
| container ignore { | | container ignore { |
| presence "Indicates a ignore node is configured."; | | presence "Indicates a ignore node is configured."; |
| description | | description |
| "Ignore IGP metric during path comparison"; | | "Ignore IGP metric during path comparison"; |
| } | | } |
| } | | } |
| container med { | | container med { |
| description | | description |
| "MED related"; | | "MED related"; |
| container always { | | container always { |
| presence "Indicates a always node is configured."; | | presence "Indicates a always node is configured."; |
| description | | description |
| "Allow comparing MED from different neighbors"; | | "Allow comparing MED from different neighbors"; |
| } | | } |
| container missing-as-worst { | | container missing-as-worst { |
| presence "Indicates a missing-as-worst node is configured."; | | presence "Indicates a missing-as-worst node is configured."; |
| description | | description |
| "Treat missing MED as the least preferred one"; | | "Treat missing MED as the least preferred one"; |
| } | | } |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container use { | | container use { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validity { | | container validity { |
| presence "Indicates a validity node is configured."; | | presence "Indicates a validity node is configured."; |
| description | | description |
| "BGP bestpath selection will use origin-AS validity"; | | "BGP bestpath selection will use origin-AS validity"; |
| } | | } |
| } | | } |
| container allow { | | container allow { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container invalid { | | container invalid { |
| presence "Indicates a invalid node is configured."; | | presence "Indicates a invalid node is configured."; |
| description | | description |
| "BGP bestpath selection will allow 'invalid' origin-AS"; | | "BGP bestpath selection will allow 'invalid' origin-AS"; |
| } | | } |
| } | | } |
| } | | } |
| container sr-policy { | | container sr-policy { |
| description | | description |
| "Paths over SR-policy"; | | "Paths over SR-policy"; |
| container prefer { | | container prefer { |
| presence "Indicates a prefer node is configured."; | | presence "Indicates a prefer node is configured."; |
| description | | description |
| "Consider only paths over SR Policy for bestpath selection, eBGP no-color eligible"; | | "Consider only paths over SR Policy for bestpath selection, eBGP no-color eligible"; |
| } | | } |
| container force { | | container force { |
| must "not(../prefer)"; | | must "not(../prefer)"; |
| presence "Indicates a force node is configured."; | | presence "Indicates a force node is configured."; |
| description | | description |
| "Consider only paths over SR Policy for bestpath selection, eBGP no-color ineligible"; | | "Consider only paths over SR Policy for bestpath selection, eBGP no-color ineligible"; |
| } | | } |
| } | | } |
| } | | } |
| container default { | | container default { |
| description | | description |
| "Configure default value"; | | "Configure default value"; |
| leaf local-preference { | | leaf local-preference { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "Higher = more preferred"; | | "Higher = more preferred"; |
| } | | } |
| } | | } |
| description | | description |
| "Local preference"; | | "Local preference"; |
| } | | } |
| } | | } |
| container enforce-first-as { | | container enforce-first-as { |
| description | | description |
| "Enforce the first AS for EBGP routes"; | | "Enforce the first AS for EBGP routes"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable"; | | "Disable"; |
| } | | } |
| } | | } |
| container fast-external-fallover { | | container fast-external-fallover { |
| description | | description |
| "Immediately reset session if a link to a directly connected external peer goes down"; | | "Immediately reset session if a link to a directly connected external peer goes down"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable"; | | "Disable"; |
| } | | } |
| } | | } |
| container log { | | container log { |
| description | | description |
| "Log bgp info"; | | "Log bgp info"; |
| container neighbor { | | container neighbor { |
| description | | description |
| "Log neighbor state info"; | | "Log neighbor state info"; |
| container changes { | | container changes { |
| description | | description |
| "Log neighbor up/down and reset reason"; | | "Log neighbor up/down and reset reason"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable logging"; | | "Disable logging"; |
| } | | } |
| } | | } |
| } | | } |
| container message { | | container message { |
| description | | description |
| "Log neighbor inbound/outbound message"; | | "Log neighbor inbound/outbound message"; |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable inbound and outbound message logging for all neighbors under the vrf"; | | "Disable inbound and outbound message logging for all neighbors under the vrf"; |
| } | | } |
| } | | } |
| } | | } |
| container multipath { | | container multipath { |
| description | | description |
| "Change multipath selection criteria"; | | "Change multipath selection criteria"; |
| container as-path { | | container as-path { |
| description | | description |
| "AS path"; | | "AS path"; |
| container ignore { | | container ignore { |
| description | | description |
| "Ignore as-path related check for multipath selection"; | | "Ignore as-path related check for multipath selection"; |
| container exact-match { | | container exact-match { |
| presence "Indicates a exact-match node is configured."; | | presence "Indicates a exact-match node is configured."; |
| description | | description |
| "Ignore as-path for multipath selection"; | | "Ignore as-path for multipath selection"; |
| } | | } |
| container onwards { | | container onwards { |
| presence "Indicates a onwards node is configured."; | | presence "Indicates a onwards node is configured."; |
| description | | description |
| "Ignore everything onwards as-path for multipath selection"; | | "Ignore everything onwards as-path for multipath selection"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container redistribute-internal { | | container redistribute-internal { |
| presence "Indicates a redistribute-internal node is configured."; | | presence "Indicates a redistribute-internal node is configured."; |
| description | | description |
| "Allow redistribution of iBGP into IGPs (dangerous)"; | | "Allow redistribution of iBGP into IGPs (dangerous)"; |
| } | | } |
| leaf router-id { | | leaf router-id { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| description | | description |
| "Configure Router-id"; | | "Configure Router-id"; |
| } | | } |
| container unsafe-ebgp-policy { | | container unsafe-ebgp-policy { |
| presence "Indicates a unsafe-ebgp-policy node is configured."; | | presence "Indicates a unsafe-ebgp-policy node is configured."; |
| description | | description |
| "Make eBGP neighbors with no policy pass all routes"; | | "Make eBGP neighbors with no policy pass all routes"; |
| } | | } |
| container origin-as { | | container origin-as { |
| description | | description |
| "BGP origin-AS knobs"; | | "BGP origin-AS knobs"; |
| container validation { | | container validation { |
| description | | description |
| "BGP origin-AS validation knobs"; | | "BGP origin-AS validation knobs"; |
| container signal { | | container signal { |
| description | | description |
| "Signal origin-AS validity towards peers"; | | "Signal origin-AS validity towards peers"; |
| container ibgp { | | container ibgp { |
| presence "Indicates a ibgp node is configured."; | | presence "Indicates a ibgp node is configured."; |
| description | | description |
| "Signal origin-AS validity towards iBGP peers"; | | "Signal origin-AS validity towards iBGP peers"; |
| } | | } |
| } | | } |
| container disable { | | container disable { |
| presence "Indicates a disable node is configured."; | | presence "Indicates a disable node is configured."; |
| description | | description |
| "Disable RPKI origin-AS validation"; | | "Disable RPKI origin-AS validation"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container bfd { | | container bfd { |
| description | | description |
| "Configure BFD parameters"; | | "Configure BFD parameters"; |
| leaf minimum-interval { | | leaf minimum-interval { |
| type uint32 { | | type uint32 { |
| range "3..30000" { | | range "3..30000" { |
| description | | description |
| "hello interval in milli-seconds"; | | "hello interval in milli-seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Hello interval"; | | "Hello interval"; |
| } | | } |
| leaf multiplier { | | leaf multiplier { |
| type uint32 { | | type uint32 { |
| range "2..16" { | | range "2..16" { |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| description | | description |
| "Detect multiplier"; | | "Detect multiplier"; |
| } | | } |
| } | | } |
| container rd { | | container rd { |
| must "auto or two-byte-as or four-byte-as or ip-address"; | | must "auto or two-byte-as or four-byte-as or ip-address"; |
| presence "Indicates a rd node is configured."; | | presence "Indicates a rd node is configured."; |
| description | | description |
| "route distinguisher"; | | "route distinguisher"; |
| container auto { | | container auto { |
| must "not(../two-byte-as or ../four-byte-as or ../ip-address)"; | | must "not(../two-byte-as or ../four-byte-as or ../ip-address)"; |
| presence "Indicates a auto node is configured."; | | presence "Indicates a auto node is configured."; |
| description | | description |
| "Automatic route distinguisher"; | | "Automatic route distinguisher"; |
| } | | } |
| container two-byte-as { | | container two-byte-as { |
| must "not(../auto or ../four-byte-as or ../ip-address)"; | | must "not(../auto or ../four-byte-as or ../ip-address)"; |
| presence "Indicates a two-byte-as node is configured."; | | presence "Indicates a two-byte-as node is configured."; |
| description | | description |
| "two-byte-as route distinguisher"; | | "two-byte-as route distinguisher"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| mandatory true; | | mandatory true; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| container four-byte-as { | | container four-byte-as { |
| must "not(../auto or ../two-byte-as or ../ip-address)"; | | must "not(../auto or ../two-byte-as or ../ip-address)"; |
| presence "Indicates a four-byte-as node is configured."; | | presence "Indicates a four-byte-as node is configured."; |
| description | | description |
| "four-byte-as route distinguisher"; | | "four-byte-as route distinguisher"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| mandatory true; | | mandatory true; |
| description | | description |
| "4-byte AS number"; | | "4-byte AS number"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..4294967295" { | | range "0..4294967295" { |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "ASN2:index (hex or decimal format)"; | | "ASN2:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| container ip-address { | | container ip-address { |
| must "not(../auto or ../two-byte-as or ../four-byte-as)"; | | must "not(../auto or ../two-byte-as or ../four-byte-as)"; |
| presence "Indicates a ip-address node is configured."; | | presence "Indicates a ip-address node is configured."; |
| description | | description |
| "configure this node"; | | "configure this node"; |
| leaf ipv4-address { | | leaf ipv4-address { |
| type inet:ipv4-address-no-zone; | | type inet:ipv4-address-no-zone; |
| mandatory true; | | mandatory true; |
| description | | description |
| "configure this node"; | | "configure this node"; |
| } | | } |
| leaf index { | | leaf index { |
| type uint32 { | | type uint32 { |
| range "0..65535" { | | range "0..65535" { |
| description | | description |
| "IPv4Address:index (hex or decimal format)"; | | "IPv4Address:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "IPv4Address:index (hex or decimal format)"; | | "IPv4Address:index (hex or decimal format)"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| | | |
| augment "/a1:snmp-server/a1:traps" { | | augment "/a1:snmp-server/a1:traps" { |
| description | | description |
| "This augment extends snmp-server traps nodes | | "This augment extends snmp-server traps nodes |
| configuration"; | | configuration"; |
| container bgp { | | container bgp { |
| description | | description |
| "Enable BGP traps"; | | "Enable BGP traps"; |
| container bgp4-mib { | | container bgp4-mib { |
| presence "Indicates a bgp4-mib node is configured."; | | presence "Indicates a bgp4-mib node is configured."; |
| description | | description |
| "Enable BGP4-MIB and CISCO-BGP4-MIB traps"; | | "Enable BGP4-MIB and CISCO-BGP4-MIB traps"; |
| } | | } |
| container bgp4-mib-updown { | | container bgp4-mib-updown { |
| presence "Indicates a updown node is configured."; | | presence "Indicates a updown node is configured."; |
| description | | description |
| "Enable CISCO-BGP4-MIB v2 up/down traps"; | | "Enable CISCO-BGP4-MIB v2 up/down traps"; |
| } | | } |
| container cbgp2 { | | container cbgp2 { |
| presence "Indicates a cbgp2 node is configured."; | | presence "Indicates a cbgp2 node is configured."; |
| description | | description |
| "Enable CISCO-BGP4-MIB v2 traps"; | | "Enable CISCO-BGP4-MIB v2 traps"; |
| } | | } |
| container cbgp2-updown { | | container cbgp2-updown { |
| presence "Indicates a updown node is configured."; | | presence "Indicates a updown node is configured."; |
| description | | description |
| "Enable CISCO-BGP4-MIB v2 up/down traps"; | | "Enable CISCO-BGP4-MIB v2 up/down traps"; |
| } | | } |
| } | | } |
| } | | } |
| augment "/a2:vrfs/a2:vrf/a2:address-family/a2:ipv4/a2:unicast" { | | augment "/a2:vrfs/a2:vrf/a2:address-family/a2:ipv4/a2:unicast" { |
| description | | description |
| "This augment extends vrf ipv4 unicast nodes | | "This augment extends vrf ipv4 unicast nodes |
| configuration"; | | configuration"; |
| uses VRF-COMMON; | | uses VRF-COMMON; |
| } | | } |
| augment "/a2:vrfs/a2:vrf/a2:address-family/a2:ipv4/a2:multicast" { | | augment "/a2:vrfs/a2:vrf/a2:address-family/a2:ipv4/a2:multicast" { |
| description | | description |
| "This augment extends vrf ipv4 multicast nodes | | "This augment extends vrf ipv4 multicast nodes |
| configuration"; | | configuration"; |
| uses VRF-COMMON; | | uses VRF-COMMON; |
| } | | } |
| augment "/a2:vrfs/a2:vrf/a2:address-family/a2:ipv4/a2:flowspec" { | | augment "/a2:vrfs/a2:vrf/a2:address-family/a2:ipv4/a2:flowspec" { |
| description | | description |
| "This augment extends vrf ipv4 flowspec nodes | | "This augment extends vrf ipv4 flowspec nodes |
| configuration"; | | configuration"; |
| uses VRF-COMMON; | | uses VRF-COMMON; |
| } | | } |
| augment "/a2:vrfs/a2:vrf/a2:address-family/a2:ipv6/a2:unicast" { | | augment "/a2:vrfs/a2:vrf/a2:address-family/a2:ipv6/a2:unicast" { |
| description | | description |
| "This augment extends vrf ipv6 unicast nodes | | "This augment extends vrf ipv6 unicast nodes |
| configuration"; | | configuration"; |
| uses VRF-COMMON; | | uses VRF-COMMON; |
| } | | } |
| augment "/a2:vrfs/a2:vrf/a2:address-family/a2:ipv6/a2:multicast" { | | augment "/a2:vrfs/a2:vrf/a2:address-family/a2:ipv6/a2:multicast" { |
| description | | description |
| "This augment extends vrf ipv6 multicast nodes | | "This augment extends vrf ipv6 multicast nodes |
| configuration"; | | configuration"; |
| uses VRF-COMMON; | | uses VRF-COMMON; |
| } | | } |
| augment "/a2:vrfs/a2:vrf/a2:address-family/a2:ipv6/a2:flowspec" { | | augment "/a2:vrfs/a2:vrf/a2:address-family/a2:ipv6/a2:flowspec" { |
| description | | description |
| "This augment extends vrf ipv6 flowspec nodes | | "This augment extends vrf ipv6 flowspec nodes |
| configuration"; | | configuration"; |
| uses VRF-COMMON; | | uses VRF-COMMON; |
| } | | } |
| augment "/a2:vrfs/a2:vrf" { | | augment "/a2:vrfs/a2:vrf" { |
| description | | description |
| "This augment extends vrf nodes | | "This augment extends vrf nodes |
| configuration"; | | configuration"; |
| uses VRF-RD; | | uses VRF-RD; |
| } | | } |
| container as-format { | | container as-format { |
| description | | description |
| "Autonomous system number format"; | | "Autonomous system number format"; |
| container asdot { | | container asdot { |
| must "not(../asplain)"; | | must "not(../asplain)"; |
| presence "Indicates a asdot node is configured."; | | presence "Indicates a asdot node is configured."; |
| description | | description |
| "AS Dot format"; | | "AS Dot format"; |
| } | | } |
| container asplain { | | container asplain { |
| must "not(../asdot)"; | | must "not(../asdot)"; |
| presence "Indicates a asplain node is configured."; | | presence "Indicates a asplain node is configured."; |
| description | | description |
| "AS Plain format"; | | "AS Plain format"; |
| } | | } |
| } | | } |
| container bmp { | | container bmp { |
| description | | description |
| "BGP Monitoring Protocol commands"; | | "BGP Monitoring Protocol commands"; |
| container servers { | | container servers { |
| description | | description |
| "BMP server configuration"; | | "BMP server configuration"; |
| list server { | | list server { |
| key "bmp-server-id"; | | key "bmp-server-id"; |
| description | | description |
| "BMP server ID to configure"; | | "BMP server ID to configure"; |
| leaf bmp-server-id { | | leaf bmp-server-id { |
| type uint32 { | | type uint32 { |
| range "1..8" { | | range "1..8" { |
| description | | description |
| "BMP server ID to configure"; | | "BMP server ID to configure"; |
| } | | } |
| } | | } |
| description | | description |
| "BMP server ID to configure"; | | "BMP server ID to configure"; |
| } | | } |
| container shutdown { | | container shutdown { |
| presence "Indicates a shutdown node is configured."; | | presence "Indicates a shutdown node is configured."; |
| description | | description |
| "Shutdown connection to BMP server"; | | "Shutdown connection to BMP server"; |
| } | | } |
| container host { | | container host { |
| presence "Indicates a host node is configured."; | | presence "Indicates a host node is configured."; |
| description | | description |
| "Hostname of BMP Server"; | | "Hostname of BMP Server"; |
| leaf host-name { | | leaf host-name { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Name of the BMP server(accepts IP Address format too)"; | | "Name of the BMP server(accepts IP Address format too)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Hostname of BMP Server"; | | "Hostname of BMP Server"; |
| } | | } |
| leaf port { | | leaf port { |
| type uint32 { | | type uint32 { |
| range "1..65535" { | | range "1..65535" { |
| description | | description |
| "Port Number of listening BMP server"; | | "Port Number of listening BMP server"; |
| } | | } |
| } | | } |
| description | | description |
| "BMP Server Listen Port"; | | "BMP Server Listen Port"; |
| } | | } |
| } | | } |
| leaf initial-delay { | | leaf initial-delay { |
| type uint32 { | | type uint32 { |
| range "1..3600" { | | range "1..3600" { |
| description | | description |
| "Initial connect delay in sending BMP server updates"; | | "Initial connect delay in sending BMP server updates"; |
| } | | } |
| } | | } |
| description | | description |
| "Initial connect delay in sending BMP server updates. Default=0"; | | "Initial connect delay in sending BMP server updates. Default=0"; |
| } | | } |
| leaf flapping-delay { | | leaf flapping-delay { |
| type uint32 { | | type uint32 { |
| range "60..3600" { | | range "60..3600" { |
| description | | description |
| "Range in seconds for the connection delay after flap"; | | "Range in seconds for the connection delay after flap"; |
| } | | } |
| } | | } |
| description | | description |
| "delay in connecting to BMP Server after a flap had been detected. Default=300"; | | "delay in connecting to BMP Server after a flap had been detected. Default=300"; |
| } | | } |
| leaf max-buffer-size { | | leaf max-buffer-size { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Range in MegaBytes for the maximum buffer size of BMP message queue."; | | "Range in MegaBytes for the maximum buffer size of BMP message queue."; |
| } | | } |
| } | | } |
| description | | description |
| "Set BMP message buffer size"; | | "Set BMP message buffer size"; |
| } | | } |
| container initial-refresh { | | container initial-refresh { |
| description | | description |
| "Initial refresh to generate BGP updates. DEfault=1"; | | "Initial refresh to generate BGP updates. DEfault=1"; |
| container delay { | | container delay { |
| presence "Indicates a delay node is configured."; | | presence "Indicates a delay node is configured."; |
| description | | description |
| "Initial delay before sending route refresh request"; | | "Initial delay before sending route refresh request"; |
| leaf initial-delay { | | leaf initial-delay { |
| type uint32 { | | type uint32 { |
| range "1..3600" { | | range "1..3600" { |
| description | | description |
| "Delay in sending Refresh request to Peers (default : 30 secs)"; | | "Delay in sending Refresh request to Peers (default : 30 secs)"; |
| } | | } |
| } | | } |
| mandatory true; | | mandatory true; |
| description | | description |
| "Initial delay before sending route refresh request"; | | "Initial delay before sending route refresh request"; |
| } | | } |
| leaf spread { | | leaf spread { |
| type uint32 { | | type uint32 { |
| range "1..3600" { | | range "1..3600" { |
| description | | description |
| "Maximum additional random delay (in secs)"; | | "Maximum additional random delay (in secs)"; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum additional random delay for initial Refresh Request"; | | "Maximum additional random delay for initial Refresh Request"; |
| } | | } |
| } | | } |
| container skip { | | container skip { |
| presence "Indicates a skip node is configured."; | | presence "Indicates a skip node is configured."; |
| description | | description |
| "Skip sending Refresh request to Peers"; | | "Skip sending Refresh request to Peers"; |
| } | | } |
| } | | } |
| leaf stats-reporting-period { | | leaf stats-reporting-period { |
| type uint32 { | | type uint32 { |
| range "1..3600" { | | range "1..3600" { |
| description | | description |
| "Stats-report-period in seconds"; | | "Stats-report-period in seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Stats reporting period for BMP server. Default=0"; | | "Stats reporting period for BMP server. Default=0"; |
| } | | } |
| leaf description { | | leaf description { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "Up to 250 characters describing this BMP server"; | | "Up to 250 characters describing this BMP server"; |
| } | | } |
| } | | } |
| description | | description |
| "BMP server specific description"; | | "BMP server specific description"; |
| } | | } |
| leaf dscp { | | leaf dscp { |
| type enumeration { | | type enumeration { |
| enum "default" { | | enum "default" { |
| value 0; | | value 0; |
| description | | description |
| "Set packets with default dscp (000000)"; | | "Set packets with default dscp (000000)"; |
| } | | } |
| enum "cs1" { | | enum "cs1" { |
| value 8; | | value 8; |
| description | | description |
| "Set packets with CS1(precedence 1) dscp (001000)"; | | "Set packets with CS1(precedence 1) dscp (001000)"; |
| } | | } |
| enum "af11" { | | enum "af11" { |
| value 10; | | value 10; |
| description | | description |
| "Set packets with AF11 dscp (001010)"; | | "Set packets with AF11 dscp (001010)"; |
| } | | } |
| enum "af12" { | | enum "af12" { |
| value 12; | | value 12; |
| description | | description |
| "Set packets with AF12 dscp (001100)"; | | "Set packets with AF12 dscp (001100)"; |
| } | | } |
| enum "af13" { | | enum "af13" { |
| value 14; | | value 14; |
| description | | description |
| "Set packets with AF13 dscp (001110)"; | | "Set packets with AF13 dscp (001110)"; |
| } | | } |
| enum "cs2" { | | enum "cs2" { |
| value 16; | | value 16; |
| description | | description |
| "Set packets with CS2(precedence 2) dscp (010000)"; | | "Set packets with CS2(precedence 2) dscp (010000)"; |
| } | | } |
| enum "af21" { | | enum "af21" { |
| value 18; | | value 18; |
| description | | description |
| "Set packets with AF21 dscp (010010)"; | | "Set packets with AF21 dscp (010010)"; |
| } | | } |
| enum "af22" { | | enum "af22" { |
| value 20; | | value 20; |
| description | | description |
| "Set packets with AF22 dscp (010100)"; | | "Set packets with AF22 dscp (010100)"; |
| } | | } |
| enum "af23" { | | enum "af23" { |
| value 22; | | value 22; |
| description | | description |
| "Set packets with AF23 dscp (010110)"; | | "Set packets with AF23 dscp (010110)"; |
| } | | } |
| enum "cs3" { | | enum "cs3" { |
| value 24; | | value 24; |
| description | | description |
| "Set packets with CS3(precedence 3) dscp (011000)"; | | "Set packets with CS3(precedence 3) dscp (011000)"; |
| } | | } |
| enum "af31" { | | enum "af31" { |
| value 26; | | value 26; |
| description | | description |
| "Set packets with AF31 dscp (011010)"; | | "Set packets with AF31 dscp (011010)"; |
| } | | } |
| enum "af32" { | | enum "af32" { |
| value 28; | | value 28; |
| description | | description |
| "Set packets with AF32 dscp (011100)"; | | "Set packets with AF32 dscp (011100)"; |
| } | | } |
| enum "af33" { | | enum "af33" { |
| value 30; | | value 30; |
| description | | description |
| "Set packets with AF33 dscp (011110)"; | | "Set packets with AF33 dscp (011110)"; |
| } | | } |
| enum "cs4" { | | enum "cs4" { |
| value 32; | | value 32; |
| description | | description |
| "Set packets with CS4(precedence 4) dscp (100000)"; | | "Set packets with CS4(precedence 4) dscp (100000)"; |
| } | | } |
| enum "af41" { | | enum "af41" { |
| value 34; | | value 34; |
| description | | description |
| "Set packets with AF41 dscp (100010)"; | | "Set packets with AF41 dscp (100010)"; |
| } | | } |
| enum "af42" { | | enum "af42" { |
| value 36; | | value 36; |
| description | | description |
| "Set packets with AF42 dscp (100100)"; | | "Set packets with AF42 dscp (100100)"; |
| } | | } |
| enum "af43" { | | enum "af43" { |
| value 38; | | value 38; |
| description | | description |
| "Set packets with AF43 dscp (100110)"; | | "Set packets with AF43 dscp (100110)"; |
| } | | } |
| enum "cs5" { | | enum "cs5" { |
| value 40; | | value 40; |
| description | | description |
| "Set packets with CS5(precedence 5) dscp (101000)"; | | "Set packets with CS5(precedence 5) dscp (101000)"; |
| } | | } |
| enum "ef" { | | enum "ef" { |
| value 46; | | value 46; |
| description | | description |
| "Set packets with EF dscp (101110)"; | | "Set packets with EF dscp (101110)"; |
| } | | } |
| enum "cs6" { | | enum "cs6" { |
| value 48; | | value 48; |
| description | | description |
| "Set packets with CS6(precedence 6) dscp (110000)"; | | "Set packets with CS6(precedence 6) dscp (110000)"; |
| } | | } |
| enum "cs7" { | | enum "cs7" { |
| value 56; | | value 56; |
| description | | description |
| "Set packets with CS7(precedence 7) dscp (111000)"; | | "Set packets with CS7(precedence 7) dscp (111000)"; |
| } | | } |
| } | | } |
| description | | description |
| "Set IP DSCP (DiffServ CodePoint)"; | | "Set IP DSCP (DiffServ CodePoint)"; |
| } | | } |
| leaf precedence { | | leaf precedence { |
| type enumeration { | | type enumeration { |
| enum "routine" { | | enum "routine" { |
| value 0; | | value 0; |
| description | | description |
| "Set packets with routine precedence (0)"; | | "Set packets with routine precedence (0)"; |
| } | | } |
| enum "priority" { | | enum "priority" { |
| value 1; | | value 1; |
| description | | description |
| "Set packets with priority precedence (1)"; | | "Set packets with priority precedence (1)"; |
| } | | } |
| enum "immediate" { | | enum "immediate" { |
| value 2; | | value 2; |
| description | | description |
| "Set packets with immediate precedence (2)"; | | "Set packets with immediate precedence (2)"; |
| } | | } |
| enum "flash" { | | enum "flash" { |
| value 3; | | value 3; |
| description | | description |
| "Set packets with flash precedence (3)"; | | "Set packets with flash precedence (3)"; |
| } | | } |
| enum "flash-override" { | | enum "flash-override" { |
| value 4; | | value 4; |
| description | | description |
| "Set packets with flash override precedence (4)"; | | "Set packets with flash override precedence (4)"; |
| } | | } |
| enum "critical" { | | enum "critical" { |
| value 5; | | value 5; |
| description | | description |
| "Set packets with critical precedence (5)"; | | "Set packets with critical precedence (5)"; |
| } | | } |
| enum "internet" { | | enum "internet" { |
| value 6; | | value 6; |
| description | | description |
| "Set packets with internetwork control precedence (6)"; | | "Set packets with internetwork control precedence (6)"; |
| } | | } |
| enum "network" { | | enum "network" { |
| value 7; | | value 7; |
| description | | description |
| "Set packets with network control precedence (7)"; | | "Set packets with network control precedence (7)"; |
| } | | } |
| } | | } |
| description | | description |
| "Set precedence"; | | "Set precedence"; |
| } | | } |
| leaf update-source { | | leaf update-source { |
| type xr:Interface-name; | | type xr:Interface-name; |
| description | | description |
| "Source to reach BMP server"; | | "Source to reach BMP server"; |
| } | | } |
| leaf vrf { | | leaf vrf { |
| type string { | | type string { |
| length "1..1024" { | | length "1..1024" { |
| description | | description |
| "VRF Name"; | | "VRF Name"; |
| } | | } |
| } | | } |
| description | | description |
| "VRF for the BMP server"; | | "VRF for the BMP server"; |
| } | | } |
| container tcp { | | container tcp { |
| description | | description |
| "Configure TCP related parameters"; | | "Configure TCP related parameters"; |
| leaf keep-alive { | | leaf keep-alive { |
| type uint32 { | | type uint32 { |
| range "0..7200" { | | range "0..7200" { |
| description | | description |
| "Keep Alive interval in seconds"; | | "Keep Alive interval in seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "configure TCP keep alives to be exchanged between client and server"; | | "configure TCP keep alives to be exchanged between client and server"; |
| } | | } |
| leaf mss { | | leaf mss { |
| type uint32 { | | type uint32 { |
| range "68..10000" { | | range "68..10000" { |
| description | | description |
| "TCP segment size in bytes"; | | "TCP segment size in bytes"; |
| } | | } |
| } | | } |
| description | | description |
| "configure TCP maximum segment size"; | | "configure TCP maximum segment size"; |
| } | | } |
| } | | } |
| } | | } |
| container all { | | container all { |
| description | | description |
| "Common commands for all BMP servers"; | | "Common commands for all BMP servers"; |
| leaf max-buffer-size { | | leaf max-buffer-size { |
| type uint32 { | | type uint32 { |
| range "1..4294967295" { | | range "1..4294967295" { |
| description | | description |
| "Range in MegaBytes for the maximum buffer size of BMP message queue."; | | "Range in MegaBytes for the maximum buffer size of BMP message queue."; |
| } | | } |
| } | | } |
| description | | description |
| "Maximum buffer limit upto which BMP messages will be queued to TCP sockets. | | "Maximum buffer limit upto which BMP messages will be queued to TCP sockets. |
| If total size of BMP messages queued up for BMP sockets exceeds this set limit, | | If total size of BMP messages queued up for BMP sockets exceeds this set limit, |
| messages will be dropped. The maximum buf-size is 20% and default buf-size is 15% | | messages will be dropped. The maximum buf-size is 20% and default buf-size is 15% |
| of the platform virtual memory max-limit (aka rlimit). Please run | | of the platform virtual memory max-limit (aka rlimit). Please run |
| show bgp process performance-statistics | | show bgp process performance-statistics |
| to see the individual values. Unit is in MegaBytes."; | | to see the individual values. Unit is in MegaBytes."; |
| } | | } |
| container route-monitoring { | | container route-monitoring { |
| description | | description |
| "Enable Route Monitoring capability for the BMP servers. | | "Enable Route Monitoring capability for the BMP servers. |
| BGP update messages will be regenerated with a table walk | | BGP update messages will be regenerated with a table walk |
| "; | | "; |
| container bmp-modes { | | container bmp-modes { |
| description | | description |
| "Enter BMP route monitoring command mode"; | | "Enter BMP route monitoring command mode"; |
| list bmp-mode { | | list bmp-mode { |
| key "mode-name"; | | key "mode-name"; |
| description | | description |
| "Enter BMP route monitoring command mode"; | | "Enter BMP route monitoring command mode"; |
| leaf mode-name { | | leaf mode-name { |
| type Bmp-mode; | | type Bmp-mode; |
| description | | description |
| "Enter BMP route monitoring command mode"; | | "Enter BMP route monitoring command mode"; |
| } | | } |
| leaf advertisement-interval { | | leaf advertisement-interval { |
| when "../mode-name = 'inbound-post-policy' or ../mode-name = 'local-rib'"; | | when "../mode-name = 'inbound-post-policy' or ../mode-name = 'local-rib'"; |
| type uint32 { | | type uint32 { |
| range "2..600" { | | range "2..600" { |
| description | | description |
| "Time in seconds"; | | "Time in seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Minimum interval between updates sent to BMP servers"; | | "Minimum interval between updates sent to BMP servers"; |
| } | | } |
| leaf scan-time { | | leaf scan-time { |
| when "../mode-name = 'inbound-post-policy'"; | | when "../mode-name = 'inbound-post-policy'"; |
| type uint32 { | | type uint32 { |
| range "5..3600" { | | range "5..3600" { |
| description | | description |
| "Time in seconds"; | | "Time in seconds"; |
| } | | } |
| } | | } |
| description | | description |
| "Configure scanner interval"; | | "Configure scanner interval"; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| } | | } |
| container router { | | container router { |
| description | | description |
| "Enable a routing process"; | | "Enable a routing process"; |
| container bgp { | | container bgp { |
| description | | description |
| "BGP configuration subcommands"; | | "BGP configuration subcommands"; |
| container instances { | | container instances { |
| description | | description |
| "Specify a instance name"; | | "Specify a instance name"; |
| list instance { | | list instance { |
| must "as"; | | must "as"; |
| key "instance-name"; | | key "instance-name"; |
| description | | description |
| "Specify a instance name"; | | "Specify a instance name"; |
| leaf instance-name { | | leaf instance-name { |
| type xr:Cisco-ios-xr-string { | | type xr:Cisco-ios-xr-string { |
| length "1..32" { | | length "1..32" { |
| description | | description |
| "instance name (maximum length 32 characters)"; | | "instance name (maximum length 32 characters)"; |
| } | | } |
| } | | } |
| description | | description |
| "Specify a instance name"; | | "Specify a instance name"; |
| } | | } |
| list as { | | list as { |
| key "as-number"; | | key "as-number"; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| uses AS-COMMON; | | uses AS-COMMON; |
| } | | } |
| } | | } |
| } | | } |
| list as { | | list as { |
| key "as-number"; | | key "as-number"; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| leaf as-number { | | leaf as-number { |
| type xr:Bgp-as-number; | | type xr:Bgp-as-number; |
| description | | description |
| "bgp as-number"; | | "bgp as-number"; |
| } | | } |
| uses AS-COMMON; | | uses AS-COMMON; |
| } | | } |
| } | | } |
| } | | } |
| } | | } |